如何在无 root 权限且无网络的 linux 环境中安装软件?

如何在无 root 权限且无网络的 linux 环境中安装软件?

介绍

上学期申请了学校集群,但是登陆后发现米有 root 权限也没有网络,这样就不能愉快地用 apt-get install 或者 yum install 安装软件了,一时之间十分尴尬。

于是在这种艰难条件下我学会了自力更生,查了各种资料,解决方案如下:

  1. 由于没有 root 用户,所以所有工具都需要编译安装

  2. 由于服务器只能连接内网,无法连接外网,所以所有工具的源码包需要通过 ftp 上传到服务器

  3. 由于编译安装到本地,所以尝试在用户目录中创建 /usr 目录,以存放编译好的工具

  4. 尝试配置用户级的 $PATH,每次登陆自动加载编译过的工具路径

以下是具体解决步骤和软件安装示例。

配置环境变量

编辑 ~/.bash_profile 文件

cd ~
vi .bash_profile

添加一行

PATH=$HOME/usr/bin:$PATH

使配置生效

source .bash_profile

安装软件

  • 安装 autoconf(默认版本太低)
wget ftp://ftp.gnu.org/gnu/autoconf/autoconf-2.69.tar.gz  # 在外网下载,下同  
tar zxvf autoconf-2.69.tar.gz  
cd autoconf-2.69  
./configure --prefix=/home/xxxxxx/usr/  
make && make install
  • 安装 htop
wget https://hisham.hm/htop/releases/2.2.0/htop-2.2.0.tar.gz
tar zxvf htop-2.2.0.tar.gz
cd htop-2.2.0.tar.gz
./autogen.sh && ./configure --prefix=/home/xxxxxx/usr/ && make install
  • 安装 python 2.7.14
wget https://www.python.org/ftp/python/2.7.14/Python-2.7.14.tgz
tar zxvf Python-2.7.14.gzip
cd Python-2.7.14
./configure --prefix=/home/xxxxxx/usr/  
make install
  • 安装 nginx

安装 nginx 比较复杂,首先需要安装依赖 pcre(注意不是 pcre2)、zlib、openssl

安装 pcre

wget ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre-8.38.tar.gz
tar zxvf pcre-8.38.tar.gz
cd pcre-8.38
./configure --prefix=/home/xxxxxx/usr/
make
make install

安装 zlib

wget http://zlib.net/zlib-1.2.11.tar.gz
tar -zxvf zlib-1.2.11.tar.gz
cd zlib-1.2.11
./configure --prefix=/home/xxxxxx/usr/
make
make install

安装 openssl

wget https://www.openssl.org/source/openssl-1.0.1t.tar.gz
tar -zxvf openssl-1.0.1t.tar.gz
cd openssl-1.0.1t.tar.gz
./config --prefix=/home/xxxxxx/usr/
make depend
make
make install

安装 nginx

wget http://nginx.org/download/nginx-1.14.0.tar.gz
tar zxvf nginx-1.14.0.tar.gzip
cd nginx-1.14.0
./configure --prefix=/home/xxxxxx/usr/nginx/  --with-pcre=/home/xxxxxx/usr/src/pcre-8.38 --with-openssl=/home/xxxxxx/usr/src/openssl-1.0.1t --with-zlib=/home/xxxxxx/usr/src/zlib-1.2.11
make
make install

参考资料

  • linux下没有root权限如何方便地安装软件? - 知乎
    https://www.zhihu.com/question/39849235/answer/83407647

  • Linux 软件安装到 /usr,/usr/local/ 还是 /opt 目录?
    https://blog.csdn.net/aqxin/article/details/48324377

  • linux用户如何设置环境变量$PATH
    https://weibo.com/p/23041869865a820102wwyn

  • linux下如何设置环境变量PATH
    https://blog.csdn.net/witsmakemen/article/details/7831631

  • CentOS6.5升级autoconf版本,解决”Autoconf version 2.64 or higher is required“错误
    https://blog.csdn.net/prettyshuang/article/details/51395095

  • hishamhm/htop
    https://github.com/hishamhm/htop

  • linux环境下安装nginx步骤
    https://www.cnblogs.com/wyd168/p/6636529.html

  • Linux系统 - 源码编译安装Nginx(.configure 参数说明)
    https://www.cnblogs.com/visec479/p/5145624.html

  • 实战Linux CentOS7 安装LNMP环境架构过程之编译nginx(nginx 安装过程参考)
    https://www.jianshu.com/p/09af5694c059

  • linux上安装Openssl步骤详解
    https://blog.csdn.net/shiyong1949/article/details/78212971?locationNum=10&fps=1

如何在无 root 权限且无网络的 linux 环境中安装软件?

上一篇:14-6 XShell连接远程服务器


下一篇:linux下的tar命令详解