【代码经验】无sudo/root权限下Linux软件安装

441 阅读2分钟

1 问题描述

在linux中安装软件时,如果没有root权限,就不能使用sudo命令,这就意味着不能使用apt-get等命令快速便捷地安装软件,也不能将软件安装在系统目录下供所有用户使用。本篇博客根据过往经验提供:使用压缩包安装软件、安装在用户目录并仅供当前用户使用的方法。

2 解决方法

下面以安装python3.7.9软件为例,介绍一般方法。

wget -c https://www.python.org/ftp/python/3.7.9/Python-3.7.9.tgz
tar -xvf Python-3.7.9.tgz
mkdir -p /home/%Username%/%Dir% (其中%Username%替换成自己的用户名,%Dir%替换成用户目录下自己想要将软件安装到的路径)
cd Python-3.7.9
./configure --prefix="/home/%Username%/%Dir%" (这里的%Username%和%Dir%与上方保持一致)

这几行代码下载并解压了Python3.7.9软件的压缩包,并配置好Python3.7.9软件的构建环境(即构建Makefile)

make

这一行代码按照构建好的Makefile进行编译,最终生成可执行文件python

需要注意的是,在执行下一行命令之前,需要进入Makefile,找到prefix=/home/%Username%/%Dir%(绝对路径),修改为prefix=~/%Dir%(相对路径),否则后续执行make install可能由于权限问题执行失败。

make install

这一行代码将已经编译好的可执行文件、第三方依赖包和文档按照Makefile中提供的路径复制到正确的路径中,Makefile中提供的路径就是此前configure命令使用prefix参数给出的路径。

自此,软件已经在用户目录构建成功,但还不能直接在命令行使用,还需要配置环境变量。找到文件~/.bashrc,并在其中加入如下语句

export PATH=/home/%Username%/%Dir%/bin:$PATH

这时使用source ~/.bashrc刷新,就可以在命令行直接使用软件,输入python3 -V,得到Python 3.7.9,证明安装成功。

3 其它经验

(1) alias命令

alias python="/home/%Username%/%Dir%/bin/python3"

alias命令的作用在于输入python时默认使用python3。

(2)pip命令

使用本方法安装的python使用pip3时可能会出现bad interpreter: No such file or directory错误,进入pip3脚本可以看到%Dir%/bin文件夹中缺少python3.7文件夹(以安装Python3.7.9为例),因此无法使用pip3命令。但是可以使用python3 -m pip install xxx安装,这与pip3 install xxx是等价的,同时还指定了pip3命令的解释器,更推荐使用。

4 参考博客

[1] blog.csdn.net/qq_36303832…

[2] zhuanlan.zhihu.com/p/77813702

[3] www.cnblogs.com/thespace/p/…