Linux下手动编译安装软件的通用方法
前言
在服务器上安装软件或者库有两点不便:
- 无权限使用apt等软件管理直接安装
- 即使下载源码编译安装也不能安装到根目录,只能放在用户目录下,还需单独设置环境变量
本文针对服务器的用户,介绍编译安装所需软件到用户自己目录下的方法,
一、从网站上找到压缩包
推荐镜像站:(包含GNU基本软件且历史版本齐全)
https://mirrors.kernel.org/
二、下载压缩包
# 以m4-1.4.19为例
wget http://mirrors.kernel.org/gnu/m4/m4-1.4.19.tar.gz
三、编译安装到用户目录
系统软件一般安装在/usr/local
中,普通用户无法修改,故通常在自己目录下创建usr
,即/home/username/usr/local
。
# 解压源码压缩包
tar -xvf m4-1.4.19.tar.gz
# 进入目录
cd m4-1.4.19
# 编译安装
./configure --prefix=/home/username/usr/local
make && make install
四、修改环境变量
主要需要修改几部分环境变量:$PATH
,$C_INCLUDE_PATH
,CPLUS_INCLUDE_PATH
,LD_LIBRARY_PATH
我们安装好软件或者库之后,由于是安装到用户自己的目录下,不在环境变量中,所以这时候系统还找不到,需要修改我们的用户配置文件~/.bashrc
vi ~/.bashrc
在.bashrc
最后添加几行
# 下面的username修改为自己的
# 将可执行文件所在文件夹添加到$PATH
export PATH=export PATH=/home/username/usr/local/bin:$PATH
# 将头文件所在文件夹添加到$C_INCLUDE_PATH,$CPLUS_INCLUDE_PATH
export C_INCLUDE_PATH=/home/username/usr/local/bin:$C_INCLUDE_PATH
export CPLUS_INCLUDE_PATH=/home/username/usr/local/bin:$CPLUS_INCLUDE_PATH
# 将动态库所在文件夹添加到$LD_LIBRARY_PATH
export LD_LIBRARY_PATH=/home/username/usr/local/lib:$LD_LIBRARY_PATH
退出后,在命令行中用source
命令刷新就生效了
source ~/.bashrc
五、安装成功
m4 --version
这时就能显示我们所安装软件的版本了
其他问题
-
有时候make的时候会报一些错,有两种可能的原因:
- 该软件依赖于其他的软件,缺失,按照本文流程安装
- 安装包版本过老或者有问题,换一个新版本试试
-
(未解决)
make
链接时报错/usr/bin/ld: cannot find -lz