在日常使用linux服务器的时候, 难免会遇到非root用户但需要安装软件的情况. 这时就需要我们使用源码安装了.
这篇文章将大概流程介绍的挺好: https://blog.csdn.net/bobobe/article/details/109144385
但细节部分仍可以进行补充.
下面我将以源码安装unzip
软件作为模板来介绍非root用户如何使用源码安装软件.
1. 找到源码
基本上所有的软件源码安装包都可以在清华镜像(https://mirrors.tuna.tsinghua.edu.cn/
)中找到
清华镜像中软件包的寻找方法:
这次要找linux中Ubuntu系统的unzip软件
- 我们在首页的镜像列表找即可(按字典序排序)找到了
Ubuntu
目录,鼠标放上面可以看到介绍(流行的软件安装包仓库), - 点进去看到一些目录(看目录名字应该能大致猜出意思), 因此去
/pool
目录下的/main
目录中寻找即可. - 清华镜像为了方便我们查找, 特地按字典序建立了子目录, 非常方便, 我们要找unzip软件, 去
/u
目录下找即可. /u
目录下可以看到了很多的软件包了, 直接网页内搜索unzip(当然一个一个找也行)就能找到unzip软件包所在的目录(找不到的话就另行他法吧, 毕竟这里只是常见的软件包)- 进入unzip目录后, 就可以看到非常多的版本, 找源版本下载即可(看英文
.orig
的应该就是源版本了)
下载的话, 直接windows下载然后发送到远程服务器, 或者通过wget filesrc
命令直接在linux中下载也可以.
2. 解压
将下载下来的软件源码安装包解压出来即可
通过tar -zxvf filename
即可解压
3. 找到并修改makefile文件
要将默认的root安装目录修改为当前非root安装目录
首先找到linux的makefile文件,
- 打开解压后的文件, 如果能在第一层直接找到Makefile文件的话, 就不用再找了.
- 如果第一层找不到的话, 找
/unix
目录下的Makefile文件(看这些目录名就明显猜到含义了,这里有macos, windows, linux各种操作系统的Makefile文件)
将/unix
目录下的Makefile
文件复制出来即可
然后就是修改Makefile文件,
- 通过
'/'+'关键字'
的方式可以在vim打开的文件中搜索关键字, 回车后通过N
来遍历搜索结果 - 如果对文件不了解的话, 几个常见的路径关键字
PATH
,DIR
等可以都试试, 这里直接通过DIR
就可以找到路径了 - 可以看到, 里面的一些参数(下面的内容是节选自Makefile文件中的内容, 对prefix参数进行了修改)
manext = 1
prefix = /home/这里填非root用户的用户名/usr/local
# prefix = /usr/local
BINDIR = $(prefix)/bin# where to install executables
MANDIR = $(prefix)/man/man$(manext)# where to install man pages
INSTALLEDBIN = $(BINDIR)/funzip$E $(BINDIR)/unzip$E $(BINDIR)/unzipsfx$E \
$(BINDIR)/zipgrep$E $(BINDIR)/zipinfo$E
INSTALLEDMAN = $(MANDIR)/funzip.$(manext) $(MANDIR)/unzip.$(manext) \
$(MANDIR)/unzipsfx.$(manext) $(MANDIR)/zipgrep.$(manext) \
$(MANDIR)/zipinfo.$(manext)
其实还是比较清楚的, prefix参数就是软件要安装的目录了, 后面的是对bin, man等目录的定义, 所以我们只需要修改prefix参数的内容即可, 为了尽量保持和root用户的参数对齐, 我就在/usr/local
前面添加了当前用户/home/当前用户的用户名
, 这样, 该软件就会安装在当前目录下的~/usr/local
目录下了.
wq
保存vim的修改即可.
4. 使用Makefile安装软件
修改完的Makefile可以让我们将软件安装在当前用户下的目录了, 执行make && make install
即可进行安装.
只要没报错就算安装成功.
5. 添加环境变量, 激活配置文件
这时候我们已经安装好软件了, 可以直接在安装目录中使用了(~/usr/local/bin
), 但想要方便的使用还是需要将软件添加到环境变量中的(毕竟, 你也不想你每次用软件的时候都敲一大堆目录的事情被别人知道吧~~)
打开~/.bashrc
文件, 在下面追加export PATH="~/usr/local/bin:$PATH"
, 这里记得用双引号, 单引号无法引用PATH.
wq
保存后通过命令激活该配置文件即可source ~/.bashrc
6. 验证软件是否安装成功
在终端中输入unzip
发现可以使用了, 软件安装成功