> 文章列表 > 源码编译安装git过程记录

源码编译安装git过程记录

源码编译安装git过程记录

工作上需要使用一台装有银河麒麟的操作系统的计算机。这台计算机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

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