在没有root访问权限的情况下安装zsh? [关闭]
Posted
技术标签:
【中文标题】在没有root访问权限的情况下安装zsh? [关闭]【英文标题】:Install zsh without root access? [closed] 【发布时间】:2013-02-23 23:06:18 【问题描述】:有可能(以及如何)?对于我有 ssh 访问权限(但没有 root 访问权限)的几台远程计算机,我真的需要这个。
【问题讨论】:
为什么要关闭?!这是对社区非常有帮助的问答。 嗨,对不起。这不是非常具体的编程,它非常广泛。也许一个不以编码为导向的问答社区可以提供帮助 预编译二进制文件:github.com/romkatv/zsh-bin/releases 【参考方案1】:下载zsh:
wget -O zsh.tar.xz https://sourceforge.net/projects/zsh/files/latest/download
mkdir zsh && unxz zsh.tar.xz && tar -xvf zsh.tar -C zsh --strip-components 1
cd zsh
你可以自己编译zsh,例如:
./configure --prefix=$HOME
make
make install
然后显式启动它,或者从当前 shell 的启动文件以编程方式启动它(将 exec $HOME/bin/zsh -l
放在正确的位置)。
【讨论】:
在 5.2 版上,前缀应该只是--prefix=$HOME
,否则将以 $HOME/bin/bin
结尾
@ilija139 谢谢,已更正。
刚刚注意到lib
文件夹也放在$HOME
中:/也许最好安装到其他文件夹并将其符号链接到$HOME/bin
最新的 zsh 版本压缩包是tar.xz
格式。上面的命令不再起作用了。
@shreyasgm 感谢您的宝贵贡献。我已经相应地更新了命令。【参考方案2】:
您可以尝试chsh
命令。您确定远程计算机上没有安装 zsh 吗?如果没有,你可以这样做(引自zsh FAQ Section 1.7)
基本思路是用exec把当前的shell换成zsh。通常您可以在登录文件中执行此操作,例如 .profile(如果您的 shell 是 sh 或 ksh)或 .login(如果它是 csh)。确保在尝试之前有某种方法可以更改文件(例如通过 FTP),因为 exec 通常是相当无情的。
如果您的主目录的子目录 bin 中有 zsh,请将其放在 .profile 中:
[ -f $HOME/bin/zsh ] && exec $HOME/bin/zsh -l
或者如果您的登录 shell 是 csh 或 tcsh,请将其放入 .login:
if ( -f ~/bin/zsh ) exec ~/bin/zsh -l
(在每种情况下 -l 都告诉 zsh 它是一个登录 shell)。
如果你想在提交之前检查它是否有效,你可以让登录 shell 询问是否执行 zsh。以下适用于 Bourne-like shell:
[ -f $HOME/bin/zsh ] &&
echo "Type Y to run zsh: \c"
read line
[ "$line" = Y ] && exec $HOME/bin/zsh -l
对于类似 C-shell 的外壳:
if ( -f ~/bin/zsh ) then
echo -n "Type Y to run zsh: "
if ( "$<" == Y ) exec ~/bin/zsh -l
endif
将它(即使没有 -l)放入 .cshrc 不是一个好主意,至少没有对 csh 应该做什么进行一些测试,因为这会导致 every 实例的 csh 变成 zsh 并会导致不调用 csh -f
的 csh 脚本(是的,不幸的是有些人编写这些脚本)失败。如果您想告诉 xterm 运行 zsh,请在执行 zsh 的同时将 SHELL 环境变量更改为 zsh 的完整路径(实际上,即使您不使用 xterm,这对于一致性也是明智的)。如果你必须从你的 .cshrc 执行 zsh,最低限度的安全检查是 if ($?prompt) exec zsh。
如果您希望您的登录 shell 在进程列表中显示为 -zsh,您可以将 zsh 链接到 -zsh(例如通过 ln -s ~/bin/zsh ~/bin/-zsh)并将 exec 更改为 exec -zsh。 (确保 -zsh 在您的路径中。)这与 -l 选项的效果相同。
脚注:如果您确实具有 root 访问权限,请确保 zsh 进入所有适当机器(包括 NIS 客户端)上的 /etc/shells,否则您可能无法通过 FTP 访问该机器。
【讨论】:
【参考方案3】:如果机器上有 zsh,你应该可以在提示交换时执行 zsh
,如果可行,你可以尝试 chsh
交换你的 shell(应该在没有 root 的情况下工作)或者当你'重新连接ssh
输入ssh -t hostname zsh
以自动启动它。
【讨论】:
【参考方案4】:在您的用户帐户目录中创建一个目录,解压缩zsh,然后使用./config
、make
和make install
。
【讨论】:
问题是关于安装没有根访问权限。以上是关于在没有root访问权限的情况下安装zsh? [关闭]的主要内容,如果未能解决你的问题,请参考以下文章
如何在没有 root 访问权限的情况下获取已安装应用程序的 APK?
如何在没有 root 访问权限的情况下安装 python 模块?