Error

C++博客 首页 新随笔 联系 聚合 管理
  217 Posts :: 61 Stories :: 32 Comments :: 0 Trackbacks
会遇到若干问题:
1.编译缺少lib,使用yum安装
2.没有设置prefix,不知道安装到那里
3.安装完成直接执行git无反应,需要建立软连接

make prefix=/usr/local all doc
make prefix=/usr/local install install-doc
wget http://git-core.googlecode.com/files/git-1.7.10.tar.gz
tar zxvf git-1.7.10.tar.gz
cd git-1.7.10
./configure --prefix=/usr/local/git
make
make install
git依赖zlib-devel,openssl-devel,perl,cpio,expat-devel,gettext-devel这些包,如果出错基本上也是这些包造成的。我在安装时出现了如下错误。
 
出现错误一:
usr/bin/perl Makefile.PL PREFIX='/usr/local/git' INSTALL_BASE='' --localedir='/usr/local/git/share/locale'
Can't locate ExtUtils/MakeMaker.pm in @INC (@INC contains: /usr/local/lib64/perl5 /usr/local/share/perl5 /usr/lib64/perl5/vendor_perl /usr/share/perl5/vendor_perl /usr/lib64/perl5 /usr/share/perl5 .) at Makefile.PL line 3.
BEGIN failed--compilation aborted at Makefile.PL line 3.
make[1]: *** [perl.mak] Error 2
make: *** [perl/perl.mak] Error 2
执行:
yum install perl-ExtUtils-MakeMaker package.
行进安装
出现错误二:
 /bin/sh: msgfmt: command not found
yum install gettext-devel
可解决!
为了省时间,你可以利用各distribution的包管理工具来一键安装。若是条件允许,从源代码安装有很多好处,至少可以安装最新的版本。Git 的每个版本都在不断尝试改进用户体验,所以能通过源代码自己编译安装最新版本就再好不过了。有些 Linux 版本自带的安装包更新起来并不及时,所以除非你在用最新的 distro 或者 backports,那么从源代码安装其实该算是最佳选择。
Git 的工作需要调用 curl,zlib,openssl,expat,libiconv 等库的代码,所以需要先安装这些依赖工具。在有 yum 的系统上(比如 Fedora)或者有 apt-get 的系统上(比如 Debian 体系),可以用下面的命令安装:
0. Git安装前环境配置:
    $ yum install curl-devel expat-devel gettext-devel openssl-devel zlib-devel 
    $ apt-get install libcurl4-gnutls-dev libexpat1-dev gettext libz-dev libssl-dev 
1. Git下载源:
    http://git-scm.com/downloads(official website)
    http://code.google.com/p/git-core 
    https://github.com/git/git  (大陆的朋友建议使用后俩个源下载)
2. 解压缩包并进入Git目录:
   $ sudo tar zxf git-1.8.0.tar.gz 
   $ cd git-1.8.0
3. 编译源码:
   $ sudo make prefix=/usr/local/git all doc
   // 这里同时指定all和doc这两个目标,指定doc是为了安装git的帮助文档到man手册里面,只指定all的话,默认并不包含git的帮助文档,这样在man手册中就查不到git的帮助。
*********************************************************************
在编译all目标时,可能会报下面的错:
      /bin/sh: curl-config: not found
      fatal error: openssl/ssl.h: No such file or directory
   这是因为git源码需要的一些开发包没有被安装。我是通过安装下面的包来解决这个问题的:
   $ sudo yum install libcurl4-openssl-dev
   网上有个方法是安装libssl-dev包,这个方法可以解决 fatal error: openssl/ssl.h: No such file or directory 的问题,但是/bin/sh: curl-config: not found问题还是存在,编译的时候还是编不过。在我的机子上,安装libcurl4-openssl-dev能同时解决这两个问题,安装libcurl4-openssl-dev时,会自动安装libssl-dev包。
在编译doc目标时,可能会报下面的错:
            /bin/sh: line 1: asciidoc: command not found
   这个包可以到这里下载并执行make(./configure ;make ;make install)常用方法安装http://sourceforge.net/projects/asciidoc
/bin/sh: line 1: xmlto: command not found 
   xmlto这个包不太好找,不过有adam在,这些都是浮云(呵呵)。下载地址:https://fedorahosted.org/releases/x/m/xmlto/,安装方法同asciidoc。
************************************************************************
4. 安装:
   $ sudo make prefix=/usr/local/git install install-doc
   // 这里同样,如果想要在man手册中看到git的帮助文档,需要额外安装,即上面的install-doc。如果只指定install目标的话,在man手册中是查不到git的相关命令帮助的。
5. 查看新安装的git版本号:
   $ ./usr/local/git/bin/git --version
   git version 1.8.0
6. 为了以后使用方便,我们这里做一个软连接:
   $ ln -s /usr/local/git/bin/* /usr/bin/
   
   
=================================================
极速安装git最新版(update 20131209):
$ git clone git://git.kernel.org/pub/scm/git/git.git
$ make prefix=/usr/local all        (编译)
$ sudo make prefix=/usr/local install       (安装)
=================================================
posted on 2014-01-14 16:26 Enic 阅读(12066) 评论(0)  编辑 收藏 引用

只有注册用户登录后才能发表评论。
【推荐】超50万行VC++源码: 大型组态工控、电力仿真CAD与GIS源码库
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理