源码编译安装git过程记录

本文介绍了在一台基于银河麒麟操作系统、采用ARM架构且无预装git的计算机上,如何通过源码逐步安装autoconf、bison、gettext、openssl、curl、expat和tcl,特别强调了在缺少库文件和特定环境下的编译配置,以及解决动态库路径和命令行可执行文件路径问题的方法。

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

工作上需要使用一台装有银河麒麟的操作系统的计算机。这台计算机cpu是arm架构的并且没有预装git。下面介绍我如何在这样一台预装软件较少的计算机上用源码安装git

目录

1 源码安装autoconf bison gettext texinfo flex

2 源码编译安装openssl

3 安装curl

3.1 下载curl-7.34.0,并解压

3.2 进入解压后的文件夹

3.3 依次执行如下指令:

4 安装expat 2.2.3

4.1下载expat 2.2.3

4.2 解压并进入解压后的文件夹

4.3 输入如下指令

5 安装tcl 8.6.13

5.1 下载tcl 8.6.13

5.2 解压并进入其unix子目录

5.3 输入如下指令:

6 生成git

6.1 下载一个git源码。我下载的是git 2.17

6.2 解压并进入该文件夹

6.3 执行如下操作:

6.4 建立软连接


1 源码安装autoconf bison gettext texinfo flex

具体安装步骤在以前的博客已经描述过,可参见 

源码编译m4 autoconf 和 samba源码编译tcpdump过程记录

这里要注意,前面描述gettext的编译过程,仅仅生成了可执行文件。但是这里git编译还需要gettext的动态库文件。

所以这里gettext的编译办法与前面的描述有区别。假如已经编译了gettext,请按照如下步骤再次编译:

a) 生成gettext的动态库

./configure --enable-shared
make
sudo make install

这里注意,./configure --enable-shared 与没有--enable-shared的区别。前者配置了一个能产生so库的makefile

b) 上面一步生成了gettext的so文件libgettextlib-0.21.so,文件生成于/usr/local/lib。但是在需要调用此so库时,linux默认不会搜索这个路径。所以接下来要把此路径加入LD_LIBRARY_PATH中:

修改~/.bashrc,在其结尾添加:

export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib

保存文件~/.bashrc

然后在命令行运行:

source ~/.bashrc

2 源码编译安装openssl

其实很多linux操作系统都已经预装了openssl。假如没有预装,请参考我的博客ubuntu编译安装openssl 

3 安装curl

3.1 下载curl-7.34.0,并解压

3.2 进入解压后的文件夹

3.3 依次执行如下指令:

aclocal
autoconf
./configure --with-openssl
make
sudo make install

4 安装expat 2.2.3

4.1下载expat 2.2.3

Releases · libexpat/libexpat (github.com) 

4.2 解压并进入解压后的文件夹

4.3 输入如下指令

./configure
make
sudo make install

5 安装tcl 8.6.13

5.1 下载tcl 8.6.13

Download tk8.6.13-src.tar.gz (Tcl) (sourceforge.net)

5.2 解压并进入其unix子目录

5.3 输入如下指令:

./configure
make
sudo make install
sudo ln -s /usr/local/bin/tclsh8.6 /usr/bin/tclsh

这里解释一下最后一个指令。倒数第二条指令sudo make install已经把可执行程序安装到了/usr/local/bin底下。但是linux操作系统执行可执行文件时,默认不搜索这个路径。在前面的博客linux下共享so文件的方法_lunix安装 .so_金色熊族的博客-CSDN博客

我提到过linux搜索库文件的次序。这里面包括/usr/lib和/lib。类似的,linux搜索可执行文件的目录包括/usr/bin和/bin。为了能让tclsh正常在命令行运行,要在/usr/bin建立一个软连接,指向/usr/local/bin/tclsh8.6

6 生成git

6.1 下载一个git源码。我下载的是git 2.17

6.2 解压并进入该文件夹

6.3 执行如下操作:

make prefix=/usr/local/git all
sudo make prefix=/usr/local/git install

6.4 建立软连接

上一步把git可执行程序生成在/usr/local/git/bin路径下。正如编译tcl源码遇到的问题一样,/usr/local/git/bin不是linux默认搜索的路径。这里同样要建立一个软链接,完成安装:

sudo ln -s /usr/local/git/bin/git /usr/bin/git

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值