Linux下普通用户该怎么安装软件
- 2019-9-6
- Linux
首先明确一点,不是 root 或者不在 sudo 组的用户只能把可执行文件或者相关的库安装到自己的用户目录下,一般建议安装在 /home/username/.local
目录下(当然也可以安装到你有写权限的路径下,记得把这个路径加到 PATH
中即可)。
由于不能使用包管理软件,所有的软件都只能通过编译安装——这真的是无奈之举,编译安装真的费神费力!你在编译的时候可能碰到各种奇怪的问题,如果耐心不好的同学,估计显示器和主机随时都被会扔到楼下去...
获取源码的方式
- 通过
apt
获取 普通用户虽然没有apt install
的权限,但是可以使用apt download
和apt source
等命令,我们可以通过apt source
获取源码包,如:
1 | ➜ apt source gettext |
源码就存放在 gettext-0.19.8.1
这个目录下。
- 从官网或 GitHub 下载 上了年代的 GNU 软件都可以在 GNU 官网找到,比较出名的软件也可以通过谷歌搜索或者百度搜索搜到它的主页从而找到源码压缩档的下载链接,比较新的开源项目基本都可以在 GitHub 上获取源码。
源码包的解压与打包
这里顺便复习一下 tar
的使用,源码包一般是以 tar.xz
结尾的,碰到这种包,我们可以通过: 1
tar xf package-name.tar.xz # 解压源码包
解压源码包。同时还复习一下其它两个常用的 tar
命令, 1
2
3
4
5# 将 package-name 文件或文件夹压缩成 package-name.tar.gz 文件
# tar 命令会默认遍历子文件夹下所有文件
tar -zcvf package-name.tar.gz package-name
# 解压 package-name.tar.gz 文件
tar -zxvf package-name.tar.gz
如果压缩档不是 gzip
压缩的话,则去掉那个 z
参数即可。
编译安装
规范的 Linux 软件(包括可执行文件和各种库)都可以通过下面3步来进行编译安装:
configure
一般的源码根目录下都会有一个 configure
文件,如果没有的话,看看有没有一个叫作 autogen.sh
的文件,如果有,则可以通过运行 autogen.sh
来生成 configure
文件。configure
顾名思义就是配置一系列编译参数和安装参数,我们可以通过 ./configure --help
来获取该 configure
文件支持的所有可选参数。我们这里最常用到的就是 --prefix
参数,它可以用来指定软件的安装路径。 这里我们可以通过下面这条命令设置安装前缀为当前用户目录的 .local
目录下: 1
./configure --prefix=$HOME/.local
配置完成后,在项目根目录下会生成一个 MAKEFILE
文件,其实就是一个安装脚本,我们可以通过 make
命令来调用运行这个 MAKEFILE
文件中的一些命令,最常用的有:
1 | make # 默认命令,根据 configure 的配置,自动编译源码生成可执行文件或库文件 |
make
在 ./configure
命令完成后且未出现报错,则可以通过 make
命令安装,当然一般也可以加 -j
参数来指定多个 job
(多线程或者多进程,具体原理没深究)同时进行,大大提高编译速度,一个示例如下: 1
make -j 20 # 20个 jobs 并行编译以提高编译速度
make install
编译成功无任何报错后,就可以通过 make install
安装到用户环境中。