安装 CrashPlan 的简便方法

安装 CrashPlan 的简便方法

是否有 .deb 文件、repo、PPA,或者任何事物安装崩溃计划除了非标准的 install.sh 文件之外,还有其他什么?我有作为我的 shell,我不得不费了好大劲才终于在安装脚本开始工作之前先使用 chsh。我不想每次升级时都要经历所有这些麻烦。

答案1

根据CrashPlan:

自动更新至最新版本。安装后无需再次下载。

如果您运行的是 2.6.13 系列内核或更高版本的 1GHZ+ x86-64 CPU、1GB+ 内存、250MB+ 可用驱动器空间、Oracle (Sun) Java 版本 1.6+、Glibc 2.4+、GTK、Xorg,那么它将适合您。

CrashPlan 安装后会自动启动并提示您创建新帐户。输入信息并点击创建帐户。CrashPlan 会将备份报告和通知发送到您输入的电子邮件地址。

重要细节:您需要使用此命令启动安装脚本以避免出现错误消息:

sudo ./install.sh

这很简单。阅读“自述文件和安装信息”以获取安装说明。

答案2

正常情况下bash install.sh或者sudo bash install.sh应该可以工作,但是使用 CrashPlan 的脚本时,一些内部命令最终在 fish 下运行并由于语法​​差异而失败。

发生这种情况的一个常见原因是 $SHELL 环境变量仍然指向 /usr/bin/fish - 许多程序使用 $SHELL 执行子命令。所以我试过了env SHELL=/bin/bash sudo bash install.sh=> 仍然是同样的 fish 错误!

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 shell 并以您自己的身份运行它,如上例所示。(如果您以 root 身份运行它,您稍后可能会遇到启动问题,因为日志文件只能由 root 写入 - 您必须写入sudo rm 它们,然后它才会启动;此外,它将默认仅备份 /root/,因此请确保您配置了正确的目录。)

su -足以获得登录 shell,但su要求输入 root 密码,而在 ubuntu 中我们习惯sudo只要求我们的密码我们甚至不记得root的密码。 但是如果您已经是 root 身份,su则不会询问任何内容,因此sudo su -可以正常工作。

我感觉使用这种冗余组合有点傻sudo su,因为su -我记得语法,所以快速的 --help 告诉我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 告发我们,甚至对于登录 shell 也是如此。 sudo su -之所以能够工作是因为su -在单独的步骤中丢弃了所有环境变量(包括 SUDO_USER)。

相关内容