我的原文:https://www.hijerry.cn/p/37831.html

问题

今天刚申请了一个服务器账号,登上去发现没有zsh。

因为没有root权限,也就无法使用apt-get命令了。

解决思路如下:

  1. 编译、安装zsh到家目录 (make 时可能找不到 autoconf
  2. 把安装好的zsh所在的目录添加到 PATH 环境变量中
  3. 登录后自动切换到 zsh
  4. 安装oh-my-zsh (不需要root)

下面是详细过程和遇到的问题及解决方法

安装zsh

官方文档:http://zsh.sourceforge.net/FAQ/zshfaq01.html

下载源码:

wget -O zsh.tar.xz https://sourceforge.net/projects/zsh/files/latest/download

解压:(注意,下载下来的文件是xz格式的)

xz -d zsh.tar.xz # 会把xz文件解压成tar文件
mkdir zsh        # 建立目录用来保存zsh源码
tar -xvf zsh.tar -C zsh --strip-components 1 # 解压tar文件到zsh目录

编译:

./configure --prefix=$HOME  #表示安装到家目录
make
make install

如果遇到找不到 autoconf 的错误,则需要手动安装。

编译、安装autoconf到家目录:

wget http://ftp.gnu.org/gnu/autoconf/autoconf-latest.tar.gz
mkdir autoconf-soruce
tar -zxvf autoconf-latest.tar.gz -C autoconf-soruce/ --strip-components 1
cd autoconf-soruce/
./configure --prefix=$HOME   # 安装到家目录
make
make install

更新PATH

这样以来 zsh 安装到 $HOME/bin 下面,并且会自动添加环境变量,但是重新登陆后就找不到了。

所以记得手动更新 PATH ,我是选择写入 ~/.bash_profile 文件。

echo 'export PATH="$HOME/bin:$HOME/.local/bin:$PATH"' >> ~/.bash_profile

这样操作之后就可以在命令行使用 zsh 了,但是不会默认使用 zsh 作为交互程序。

两条思路:

  1. 使用chsh (可以尝试,但是我失败了,因为没有权限写入 /etc/shells
  2. 修改启动脚本,自动切换到 zsh (官方推荐的方式)

我还是选择写入 ~/.bash_profile文件:

echo '[ -f $HOME/bin/zsh ] && exec $HOME/bin/zsh -l' >> ~/.bash_profile

安装oh-my-zsh

一行代码搞定:

wget https://github.com/robbyrussell/oh-my-zsh/raw/master/tools/install.sh -O - | sh

值得注意的是上述脚本的一段代码:

TEST_CURRENT_SHELL=$(expr "$SHELL" : '.*/\(.*\)')
if [ "$TEST_CURRENT_SHELL" != "zsh" ]; then# If this platform provides a "chsh" command (not Cygwin), do it, man!if hash chsh >/dev/null 2>&1; thenprintf "${BLUE}Time to change your default shell to zsh!${NORMAL}\n"chsh -s $(grep /zsh$ /etc/shells | tail -1)# Else, suggest the user do so manually.elseprintf "I can't change your shell automatically because this system does not have chsh.\n"printf "${BLUE}Please manually change your default shell to zsh!${NORMAL}\n"fi
fi

干了啥?如果系统默认shell不是zsh的话,会尝试使用 chsh 命令切换到 /etc/shells 列表里的 zsh,如果切换失败就会提示错误。

有什么影响?如果全局已经有zsh的情况下,这个脚本会主动把默认shell切换成全局的zsh,而不会使用本地的zsh。这对我来说没什么影响。

不使用root权限安装zsh和oh-my-zsh相关推荐

  1. ABySS非root权限安装

    本文转自  http://yangl.net/2015/11/12/abyss_install/ ABySS: ABySS is a de novo, parallel, paired-end seq ...

  2. linux无root权限安装软件

    在有些公司是不会给开发人员root权限的,但是开发人员有时候也需要装一些软件.没有root权限是否可以成功安装软件呢?答案是yes.本文以安装nginx为例说明下如何操作. 没有root权限时往往也就 ...

  3. p7za无root权限安装/7z linux安装

    p7za无root权限安装/7z linux安装 最近在一个无root的服务器下载了超大的7z文件,结果解压的时候发现没有7za傻眼了,后面无root安装的时候还踩了几个坑,记录一下. 源码安装 首先 ...

  4. 无root权限安装.iso软件包

    mount的使用 通常,有root权限安装.iso可以使用 mount [-t vfstype] [-o options] device dir ~~[-t vfstype] 指定文件类型,一般可以省 ...

  5. linux下无root权限安装python2.7和pip以及安装cuda9.0,cudnn7.4,pytorch-gpu

    简介 因为自己电脑的gpu不足,想要使用学校的gpu.学校的基本配置如下 系统是centos7.3.里面有8个V100 因为没有root权限,所以只能在文件夹下安装自己的所有东西,刚开始想要安装ana ...

  6. Linux -- 以root权限安装QT5.8.0

    下载qt-opensource-linux-x64-5.8.0.run 在qt-opensource-linux-x64-5.8.0.run文件所在的目录下启动命令行,执行以下代码 问题的核心是以ro ...

  7. Linux无root权限安装opencv3.4.0以及一些问题

    本文链接:https://blog.csdn.net/cowry5/article/details/80870251 本人的各种依赖的版本都很低,且无root权限,安装了很多次都失败,最后终于成功.特 ...

  8. Linux无root权限安装cuda9.1和cudnn7.05以及编译框架时无lcuda.so的问题

    无root权限 centos 7 cuda 9.1 cudnn 7.05 for cuda 9.1 1 下载安装cuda cuda下载 https://developer.nvidia.com/cud ...

  9. Linux的root权限安装nvm后可用,切换用户以后报nvm: command not found解决办法

    如何安装就不说了,网上一大把. 接下来我说一下我遇到的坑,我在root环境下安装nvm,一切正常,但是我切换成普通用户以后,就会报命令找不到,命令找不到肯定就是路径的问题. 以下就是我的解决办法: 1 ...

最新文章

  1. Android网络服务发现(NSD)协议的使用
  2. linux修改文件名常用命令
  3. 小米线刷包需要解压么_【连载】刷机教程之小米手机通用线刷教程
  4. Andropid自己定义组件-坐标具体解释
  5. gwas snp 和_eQTL和GWAS还可以这样玩
  6. 硬核数据研究:年轻人为什么这么喜欢“哈哈哈哈”?
  7. 俺也用一下mandriva,恩,KDE的效果的确不错
  8. Android studio 升级指定dradle
  9. 【BZOJ2038】【2009国家集训队】小Z的袜子(hose) 分块+莫队
  10. solr查询如何支持多个fq 多条件查询
  11. B 站 CEO 的身份证被上传到 GitHub 了?这个火了
  12. 5个最受欢迎的大数据可视化软件
  13. MySQL常用SQL语句大全
  14. 关于DCMM评估模型的全面解析
  15. 阿里云DataV数据可视化工具的简单使用与地图组件区域下钻热力图下钻上钻控制缩放比例demo
  16. 什么是EIP、ESP、EBP
  17. dnf服务器未响应怎么解决方法,win7系统dnf经常未响应的解决方法
  18. 编译PX4时,报错error ‘i‘ does not name a type __ULong i[2];解决方法
  19. 移动设备管理软件优劣,南京烽火星空来判别
  20. camera相关术语

热门文章

  1. UIC564-2附录8 – 发泡材料的阻燃防火测试
  2. 生存曲线 p值 python_超详细讲解生信SCI中的生存曲线作图,不看后悔系列
  3. java实现斗地主发牌项目
  4. Datawhale组队学习周报(第022周)
  5. 计算机网络之数据交换方式
  6. H.264码率控制算法研究及JM相应代码分析(二)
  7. 数据库的文件服务器配置,服务器数据库文件配置
  8. linux环境变量设置 (PS1,PS2)
  9. 一位上海疫情下的悲催女程序员!
  10. 我如何在没有学位或参加训练营的情况下找到我的第一份软件开发人员工作