Есть ли файл .deb, репозиторий, PPA или что-нибудь для установки CrashPlan , кроме нестандартного файла install.sh? У меня есть fish в качестве оболочки, и мне пришлось много возиться и, наконец, сначала использовать chsh, прежде чем скрипт установки будет работать. Я не хочу прыгать через все эти обручи каждый раз, когда есть обновление.
Согласно CrashPlan:
автоматически обновляется до последней версии. Вам не нужно загружать его снова после его установки.
blockquote>Если вы работаете с ядром 2.6.13 Series или выше, 1 ГГц + x86-64 ЦП, 1 ГБ + память, 250 МБ + свободное дисковое пространство, Oracle (Sun) Java версии 1.6+, Glibc 2.4+, GTK, Xorg, тогда это будет работать для вас.
CrashPlan автоматически запускается после установки и предлагает вам создать новую учетную запись. Введите информацию и нажмите «Создать учетную запись». CrashPlan будет отправлять резервные отчеты и уведомления на адрес электронной почты, который вы вводите.
Важная деталь: Вам необходимо запустить скрипт установки с помощью этой команды, чтобы избежать сообщений об ошибках:
sudo ./install.sh
Это довольно просто. Прочтите «Прочтите меня и установите информацию» для инструкций по установке.
Обычно bash install.sh
или sudo bash install.sh
должны были работать, но со сценарием CrashPlan действительно некоторые внутренние команды заканчиваются тем, что работают под fish и терпят неудачу из-за синтаксических различий.
Распространенной причиной этого может быть переменная окружения $ SHELL, которая по-прежнему указывает на / usr / bin / fish - многие программы выполняют подкоманды, используя $ SHELL. Поэтому я попытался env SHELL=/bin/bash sudo bash install.sh
=> все та же ошибка с рыбой!
fish: Expected a command name, got token of type “Run job in background”. Did you mean “COMMAND; and COMMAND”? See the help section for the “and” builtin command by typing “help and”.
Standard input: sed -imod "s|Exec=.*|Exec=/usr/local/crashplan/bin/CrashPlanDesktop|" /home/anat/Desktop/CrashPlan.desktop && rm -rf /home/anat/Desktop/CrashPlan.desktopmod
^
Хмм. Давайте попробуем усерднее - давайте поработаем с реальной корневой оболочкой входа в систему , которая выполняет более полный сброс (переменные среды, каталог и т. Д.):
~/CrashPlan-install $ sudo su -
root@overgrad:~# echo $SHELL # that wasn't the problem anyway
/bin/bash
root@overgrad:~# cd /home/anat/CrashPlan-install/
root@overgrad:/home/anat/CrashPlan-install# bash install.sh
...
Would you like to start CrashPlanDesktop? (y/n) [n]
To start the Desktop UI:
/usr/local/bin/CrashPlanDesktop
Installation is complete. Thank you for installing CrashPlan for Linux.
root@overgrad:~# exit
logout
~/CrashPlan-install $ CrashPlanDesktop
ПРИМЕЧАНИЕ. спросит вас, хотите ли вы запустить CrashPlanDesktop, скажите НЕТ. Вместо этого выйдите из корневой оболочки и запустите ее как вы сами, как показано в примере выше. (Если вы запустите его от имени пользователя root, у вас могут возникнуть проблемы с его запуском самостоятельно из-за того, что файлы журналов доступны для записи только пользователю root - вам придется sudo rm
их запустить, а затем он запустится; кроме того, по умолчанию будет только резервное копирование / root /, поэтому убедитесь, что вы настроили правильные каталоги.)
su -
достаточно, чтобы получить оболочку входа, но su
запрашивает пароль root, и в Ubuntu мы так используем sudo
только запрашивая наш пароль, мы даже не помним пароль root. Но если вы уже root, su
ничего не спрашивает, поэтому sudo su -
работает.
Я чувствовал себя немного глупо, используя эту избыточную комбинацию sudo su
только потому, что su -
- это синтаксис, который я помню, поэтому быстрой подсказки мне сказали, что sudo --login
будет достаточно.
Удивительно sudo --login
не удалось с той же ошибкой рыбы !
Это меня заинтересовало. Читая install.sh, я обнаружил:
SRC_USER=${SUDO_USER}
if [ "x${SRC_USER}" == "x" ] ; then
SRC_USER=${USER}
fi
(позже использовался для создания /home/${SRC_USER}/Desktop/${APP_BASENAME}.desktop
с помощью набора команд su ${SRC_USER} -c "..."
).
=> Ага! Таким образом, проблема заключалась в том, что sudo набрасывается на нас, экспортируя $ SUDO_USER , даже в оболочку входа в систему. sudo su -
сработало, потому что su -
отбрасывает все переменные окружения - включая SUDO_USER - на отдельном шаге.