更多文章分享在个人微信公众号:极客熊猫
欢迎扫码关注:
在这里插入图片描述

引言

在Linux中,有三种软件安装方法:

  • 源代码安装(Tarball)

源代码安装方式相对来讲比较复杂。软件商会把软件的所有源代码打包压缩成一个Tarball,我们下载这个Tarball后,在自己的电脑上进行编译,然后安装。由于需要自行编译,所以耗时会较长,且依赖需要用户自己解决;但好处在于,自己的机器编译出来的肯定会更适合自己的机器,且可以安装自己想要的版本。

  • 二进制安装

二进制安装方式就是厂商已经预先在各种平台上编译好了,我们只需要下载对应平台的安装包进行安装。比如针对Debian系的.deb包、针对RedHat系的.rpm包。这种安装方式的优点在于比较简单,用对应的包管理工具rpm或者dpkg就可以安装;缺点在于无法解决依赖,且版本可能会比较落后。


  • yum或apt安装

这种安装方式其实也是二进制安装的一种,只是yum或者apt可以自动解决依赖,其他的与rpm或dpkg安装并无不同,同样存在版本可能比较落后的问题,尤其是yum。

2021年了,yum安装的git居然还是1.x版本。

发行版派系代表发行版包管理工具依赖管理工具RedHat系CentOS、RedHat、FedorarpmyumDebian系Ubuntu、Debiandpkgapt

综上,虽然Tarball安装是比较麻烦的一种,但是为了自由地选择软件版本,这种安装方式是我们必须掌握的。下边我们通过源代码方式安装Git,来记录Linux下通过源代码安装软件的基本流程。对其他软件也同样适用。

下载Tarball

首先去Git官网选择自己想要的Git版本的Tarball下载地址,这里选择了目前的最新版(2.31.1版本)。然后在命令行输入下列命令下载该Tarball:

wget https://mirrors.edge.kernel.org/pub/software/scm/git/git-2.31.1.tar.gz

解压Tarball

将Tarball解压:

tar -zxvf git-2.31.1.tar.gz

解压后会出现文件夹git-2.31.1,里边有很多文件,可以进去看一下。

INSTALL文件详细说明了Git的安装方法,可以读一下。

将源代码解压到/usr/local/src中也是一个好习惯。

脚本配置工具

文件夹内的configure文件是一个脚本配置工具,用来检测本机环境并生成对应的Makefile以备后续编译安装使用。

configure负责找到编译安装所需要的数据比如函数库、编译器、依赖项等,该程序都可以检测出来。

我们一般还用它来指定安装位置:

cd git-2.31.1
./configure --prefix=/usr/local/git

尽量给软件一个单独的文件夹,如果只指定到/usr/local的话,安装之后git的各种文件会分散在不同的文件夹,将来删除的时候不方便;

通过指定到/usr/local/git,安装之后所有的东西都在git文件夹内,将来要卸载它,只需执行rm -rf /usr/local/git即可。

编译与安装

执行完configure之后,就会生成针对本机的Makefile,然后就可以通过make命令编译,make install安装了。

make && make install
这个过程可能出现错误,一般是缺少一些依赖,找出对应的依赖,安装之后,重新执行上述安装命令即可。

加入环境变量

这样安装之后,由于可执行程序的路径不在系统变量内,无法直接使用git,而要/usr/local/git/bin/git这样使用,未免太过麻烦。我们可以把其路径加入到环境变量,这样就可以直接使用git了。

环境变量在/etc/profile内添加,使用下列命令打开该文件:

vim /etc/profile

在最末尾添加以下两行:

export GIT_HOME=/usr/local/git
export PATH=${GIT_HOME}/bin:${PATH}

保存修改并退出,然后执行下列命令使新的环境变量生效:

source /etc/profile

这样,就可以直接使用git了。至此,git安装完毕。

加入man path

我们经常用man命令来查找一些使用帮助,对我们非常重要。但是现在执行man git会提示No manual entry for git,这是因为我们安装的git不含git-manpages,所以要想用man git,我们要:

  • 首先下载git-manpages:
git clone http://git.kernel.org/pub/scm/git/git-manpages.git
  • 然后把下载下来的manpages移动到git的安装目录的share文件夹内:
mkdir /usr/local/git/share/man
sudo cp -r git-manpages/* /usr/local/git/share/man/
  • 在man\_db.conf中添加一行,在40~50行附近添加下行:
MANPATH_MAP /usr/local/git/bin /usr/local/git/share/man

退出并保存后,就可以使用man git了。

踩坑

安装完之后,使用以下命令clone我的SurgeX项目时:

git clone https://github.com/mrxuxg/SurgeX.git

出现错误:

git: 'remote-https' is not a git command. See 'git --help'.

经过查找,终于在StackOverflow上查到了解决方案,出现此错误是因为缺少了一个依赖libcurl-devel,解决方案如下:

  • 安装libcurl;
sudo yum install libcurl-devel //RedHat系
sudo apt install libcurl4-openssl-dev //Debian系
  • 重新执行安装Git:重新configure、重新make、重新make install。

标签: 安装, usr, Linux, 软件, git, 源代码, man, Tarball, local

相关文章推荐

添加新评论,含*的栏目为必填