Linux下非root用户如何安装软件

本文介绍在Linux系统中,非root用户如何通过获取源代码、解压、配置、编译及安装等步骤自行安装软件,并更新环境变量,使程序能够在用户权限下正常运行。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Ubuntu,opensuse,debian这类的系统提供了软件仓库,里面有直接编译好的软件包可用。要安装g++?没问题!sudo apt-get install g++,两分钟见效,效果杠杠的。依赖问题自动帮你解决了,至于版本估计就不再考虑范围之内,能用才是王道!话说当年我也这样使用Linux好多年。这么看来,Linux安装软件也不是那么难的嘛,安装完之后直接敲命令就可以运行了。

但是不是所有的软件都是能在软件仓库里找到的。难免有些软件是别人写的,给出的是源代码。这种情形下需要下载下来,解压(对很多人也是一个难题,不能点右键直接解压!)之后,按照里面说make && make install就可以了。如果碰到权限问题,咱有root权限咱怕谁啊?如果稍微高级一点的,可能还需要在make之前执行./configure,这个也还是很简单吗,一切都没问题的。虽然暂时不知道这几句代表了什么,但是只要程序没有错误,依赖的软件或者包都有,事情进展还是很顺利的。

首先需要解释一下程序是怎样运行的。在Linux下,用户在终端下输入一个命令,比如ls,这个命令是怎样被执行的呢?大致流程为:在当前用户的path路径文件夹下查找名为ls的可执行文件名,如果找到,则执行ls文件;如果找不到,则提示未安装或者找不到。这里很重要的就是path路径的内容,如果没有指定路径,则会在path路径里寻找。可以echo $PATH看看里面的内容。在以冒号分割的文件夹下,你会发现你平时执行的程序都在。所以要执行一个程序,首先要保证这个文件存在,然后:1.如果告诉了程序的路径,系统会到指定目录下寻找该程序并执行,如 ./helloworld 就是执行当前目录下的helloworld程序;2.如果没有指明路径,则需要保证需要执行的程序在path变量里面的任意一个目录下。在windows上也是同样的,不过windows一般是以鼠标点击方式,因而关注的人很少。在任意一个快捷方式上点右键,属性里面有个“目标”,指明的就是该程序的位置(一般给出的都是绝对位置)。

接着要说明的是如果不是root用户,会拥有哪些权限。对任意一个目录,可以使用ls -l查看对其的权限。会看到(d|-)rwxrwxrwx这样的权限说明,其中d代表这是一个目录,-则表示是文件,rwx分别对应读写和执行。一般的目录都有r和x权限,正常情况下非root用户只对 主目录和/tmp创建的目录有写的权限。当然/tmp指明了其属性,里面都应该只能放临时性的东西,重要的东西都不应该放里面,说不定什么时候就被清走了,或者系统一重启就清除了。综上所述:用户可以执行很多目录下的程序,但是其工作目录(一般程序都有输出)应该只限于用户的家目录。

再回过头来看为什么安装软件一般都需要root权限。软件默认的安装路径是 /usr/bin,普通用户对这个目录是没有写权限的。安装的时候需要将文件copy到该目录下,所以会提示无权限而操作失败。如果不使用root权限,只能而且应该将软件安装在自己的目录下。为了方便,可以将执行程序所在目录加入到path环境变量里。如果不更新path变量,则运行程序的时候需要指明路径。

 


 

下面简要说一下Linux下非root用户安装软件的一般流程:

 

1. 获取源代码,一般是wget方式,ubuntu可以使用apt-get source来获取源代码。

2. 解压源代码,一般使用tar -zxvf xxx.tar.gz即可

3. 切换到解压后的目录,运行 ./configure。其选项可以通过 ./configure –help来获取,非root用户下最重要的应该是定义安装目录,即应该定义 ./configure –prefix=/path/to/bin, 对于一些依赖库,可能还需要使用 ./configure  –prefix=xxx –with-xx-dir=xxx这种形式。

4. 接着是编译源代码和安装软件: make &&  make install。这两条命令可以分开来用,因为编译的时候可以指定参数 -j来并行编译,这样能够加快编译进度。。

5. 更新path路径。使用export PATH=/path/to/bin:$PATH,这句话在shell窗口运行只在本次会话中有效,可以将其写到.bashrc或者.bash_profile里面使其对当前用户有效。

6.如果安装的是动态链接库,则需要更新动态链接库路径: export LD_LIBRARY_PATH=/path/to/library:$LD_LIBRARY_PATH,同样是export命令,最好将其写在.bashrc这类文件下面以便登陆的时候自动调用。


### 如何在Linux系统上作为root用户安装Graphviz 对于希望在Linux系统中以root用户身份安装Graphviz的情况,一种有效的方法是从源码编译并指定自定义前缀路径完成安装。这允许软件被安置于用户的家目录之下而不触及系统的其他部分。 #### 下载与准备环境 首先应当从官方资源获取最新的稳定版压缩包[^4]: ```bash wget https://graphviz.gitlab.io/pub/graphviz/stable/SOURCES/graphviz.tar.gz tar -xf graphviz.tar.gz cd graphviz-* ``` #### 配置构建选项 通过`./configure`脚本配置编译参数时,利用`--prefix`选项指明目标位置以便绕开对管理员权限的需求。例如设置为个人空间下的特定文件夹: ```bash ./configure --prefix=$HOME/usr/local ``` 此操作会告知Makefile将后续生成的二进制文件放置在此处而默认全局共享区域。 #### 编译和安装过程 一旦配置完毕就可以继续执行实际的编译工作以及最终部署至之前选定的目的地了: ```bash make && make install ``` 上述指令会在本地构建应用程序并将结果安放到早先由`--prefix`所设定的位置里去。 #### 更新环境变量 为了让新加入的工具能够正常使用,还需要调整当前shell session中的PATH环境变量指向新增加的应用程序所在之处: ```bash export PATH=$PATH:$HOME/usr/local/bin ``` 为了使这一更改永久生效,建议把这条语句追加到`.bashrc`或者其他启动脚本里面。 #### 测试安装成果 最后一步就是验证整个流程是否成功结束,尝试调用刚装好的命令看看能否正常运作: ```bash dot -V ``` 如果一切顺利的话应该能看到版本信息输出而不会有任何错误提示。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值