Linux系统下安装源码软件的技巧

透了充气一锤吖

透了充气一锤吖

2016-02-20 03:14

下面图老师小编要向大家介绍下Linux系统下安装源码软件的技巧,看起来复杂实则是简单的,掌握好技巧就OK,喜欢就赶紧收藏起来吧!

Linux下很多软件需要以源码包的方式发布的,安装起来非常麻烦,那么有什么简单的方法来安装源码软件呢?下面图老师小编就给大家介绍下Linux系统安装源码软件最简单的方法,一起来学习下吧。

 Linux系统下安装源码软件的技巧

对于最终用户而言,虽然相对于二进制软件包,配置和编译起来繁琐点,但是它的可移植性却好得多,针对不同的体系结构,软件开发者往往仅需发布同一份源码包,不同的最终用户经过编译就可以正确运行,这也是非常符合c语言的设计哲学的,一次编写,到处编译么,而常见的二进制包,比如rpm和deb,软件开发者必须为每种特定的平台定制好专门的软件包,这个通过rpm文件的后缀名就可以初见端倪,比如ppc,sparc,i386之类,在这里不做过多的陈述,其实源码安装软件远没有很多朋友想象的那么复杂。

安装的具体步骤:

___FCKpd___0nbsp;tar zxvf XXXX.tar.gz (or tar jxvf XXXX.tar.bz2)___FCKpd___0nbsp;cd XXXX___FCKpd___0nbsp;。/configure___FCKpd___0nbsp;make# make install

(本文来源于图老师网站,更多请访问http://m.tulaoshi.com/diannaorumen/)

___FCKpd___1nbsp;make clean

安装完成后用来清理临时文件

# make uninstall

用来卸载软件

解压:

最常见源码包的就两种(XXXX.tar.gz or XXXX.tar.bz2),其实这些源码包都是由2个工具压缩而成的,tar.gz结尾的文件用到的工具是tar和gunzip,而tar.bz2结尾的文件所使用的工具是tar和bzip2,之所以这样做是因为,tar仅仅能够打包多个文件但是没有压缩的功能,而gz和bz2却刚好相反,仅能够压缩单个文件,这样我们常见的源码包实际上是通过tar先将不同的源文件打包,然后再通过gunzip或者bzip2压缩后发布的,当然这两个步骤可以通过一条命令实现:

___FCKpd___2nbsp;tar zcvf XXXX.tar.gz XXXX(or tar jcvf XXXX.tar.bz2 XXXX)

解压的相关命令如下:

___FCKpd___3nbsp;tar zxvf XXXX.tar.gz___FCKpd___3nbsp;tar jxvf XXXX.tar.bz2

。/configure:

解压完成就正式开始安装了(补充一点,开始configure之前,如有必要,请使用patch工具为源码打上相应的补丁),首先跳转到源码的解压目录,众所周知,开始configure前还是应该仔细阅读源码目录下的README或者INSTALL文件,好多安装中的注意事项在这里都有所罗列,configure实际上是一个脚本文件,在当前目录中键入。/configure,shell就会运行当前目录下的configure脚本,有一点必须说明,在整个configure过程,其实编译尚未进行,configure仅仅是做编译相关的准备工作,它主要对您当前的工作平台做一些依赖性检查,比如编译器是否安装,连接器是否存在,如果在检测的过程没有任何错误,你很幸运,configure脚本会在当前目录下生成下一步编译链接所要用到的另一个文件Makefile,当然configure支持及其丰富的命令行参数,可以键入。/configre --help获取具体的信息,最常用的恐怕就是:

___FCKpd___5nbsp;。/configure --prefix=/opt/XXX

它用来设置软件的安装目录。

make:

如果configure过程正确完成,那么在源码目录,会生成相应的Makefile文件,Makefile文件简单来说包括的是一组文件依赖关系以及编译链接的相关步骤,事实上真正的编译链接工作也不是make所做的,make只是一个通用的工具,一般情况下,make会根据Makefile中的规则调用合适的编译器编译所有与当前软件相依赖的源码,生成所有相关的目标文件,最后再使用链接器生成最终的可执行程序:

___FCKpd___6nbsp;make

make install:

当上面两个步骤正确完成,代表着编译链接过程已经完全结束,最后要做的就是将可执行程序安装到正确的位置,在这个步骤,普通用户可能没有相关目录的操作权限,临时切换到root是一个不错的选择,install只是Makefile文件中的一个标号,make install代表着make工具执行Makefile文件中install标号下的所有相关操作,如果在configure阶段没有使用--prefix=/opt/XXX指定应用程序的安装目录,那么应用程序一般会被默认安装到/usr/local/bin,如果/usr/local/bin已经存在于您的PATH中,那么安装已经基本结束:

#make install

make clean:

make uninstall:

这两个步骤只是安装的后续操作,有一点必须注意,clean和uninstall也是Makefile文件中相应的两个标号,执行这两个步骤的时候Makefile文件必要保留,make clean用来清除编译连接过程中的一些临时文件,make uninstall是卸载相关应用程序,与make install类似,make uninstall也需要切换到root执行,不过uninstall标号在好多Makefile中都被省略掉了,朋友们完全可以自己在相应的Makefile文件一探究竟。

Why?

在这里我尝试着解释一下上面这些步骤存在的理由,从C语言的角度来说,一个程序从源码到正确生成相关的可执行文件,下面这些部分必不可少:源文件,编译器,汇编器,连接器,依赖库,通过上面几个步骤,朋友们应该已经知道,真正执行编译链接操作的步骤只有一个(make),那其他步骤存在的理由何在?

有一点是肯定的,我在自己的电脑上使用C语言写一些自娱自乐的小程序,也没有用到configure or make install之类的命令,顶多自己写个Makefile管理源文件的依赖关系,可是软件开发者不同,他必须考虑到软件的可移植性,他开发的软件不能仅仅就在他自己的pc上跑吧?不同的平台可能连硬件体系结构都不同,这样就导致了Makefile的不可移植性,为了解决这个问题,开发者通常使用autoconf之类的工具生成相应的configure脚本,而configure脚本就是用来屏蔽相应的平台差异,从而正确生成Makefile文件,然后make再根据configure的劳动成果(Makefile)完成编译链接工作。

至于install or clean or uninstall,也只是对应着Makefile文件中不同的规则,关于Makefile的详细信息,朋友们可以自行查阅相关的文档。

一个例子

下面是我在自己的pc机上源码安装tar工具的过程,权当做是上面这些步骤的一个具体事例吧:

[root@localhost ~]# head -n 1 /etc/issueCentOS release 5.4 (Final)[root@localhost ~]# uname -srLinux 2.6.18-164.el5[root@localhost ~]# gcc --versiongcc (GCC) 4.1.2 20080704 (Red Hat 4.1.2-46)Copyright (C) 2006 Free Software Foundation, Inc.

这个是我的系统信息。

[root@localhost tools]# pwd/root/tools[root@localhost tools]# lstar-1.23.tar.bz2[root@localhost tools]# tar jxvf tar-1.23.tar.bz2.。。。。。[root@localhost tools]# lstar-1.23 tar-1.23.tar.bz2[root@localhost tools]# cd tar-1.23[root@localhost tar-1.23]# lsABOUT-NLS build-aux configure gnu Makefile.am po srcacinclude.m4 ChangeLog configure.ac INSTALL Makefile.in README testsaclocal.m4 ChangeLog.1 COPYING lib Make.rules rmt THANKSAUTHORS config.h.in doc m4 NEWS scripts TODO

解压原文件包,可以发现其中包括了configure脚本和README文件。

(本文来源于图老师网站,更多请访问http://m.tulaoshi.com/diannaorumen/)

[root@localhost tar-1.23]# mkdir -v ~/tarmkdir: 已创建目录 /root/tar[root@localhost tar-1.23]# 。/configure --prefix=/root/tar.。。。。。[root@localhost tar-1.23]# echo $?

建立软件安装目录,并configure,检查configure返回结果,为0代表运行成功。

[root@localhost tar-1.23]# ls -FABOUT-NLS ChangeLog.1 configure.ac m4/ po/ tests/acinclude.m4 config.h COPYING Makefile README THANKSaclocal.m4 config.h.in doc/ Makefile.am rmt/ TODOAUTHORS config.log gnu/ Makefile.in scripts/build-aux/ config.status* INSTALL Make.rules src/ChangeLog configure* lib/ NEWS stamp-h1

可以看到Makefile文件已经被成功建立。

[root@localhost tar-1.23]# less Makefile | grep install: || { echo ERROR: files left after uninstall: ; install: install-recursiveuninstall: uninstall-recursive

在建立的Makefile中存在install和uninstall标号

[root@localhost tar-1.23]#make.。。。。。[root@localhost tar-1.23]#echo &?

0

make成功

[root@localhost tar-1.23]#make install.。。。。。[root@localhost tar-1.23]# ls /root/tarbin libexec sbin share[root@localhost tar]# cd /root/tar/bin[root@localhost bin]# lstar[root@localhost bin]# 。/tar --help.。。。。。[root@localhost tar-1.23]#echo &?

0

安装并简单测试成功。

上面就是Linux下安装源码软件的最简单的方法介绍了,其实源码安装软件没有你想象的那么复杂,只要用对方法,也能很简单的完成软件安装。

展开更多 50%)
分享

猜你喜欢

Linux系统下安装源码软件的技巧

电脑入门
Linux系统下安装源码软件的技巧

Linux下的软件安装

Linux Linux命令 Linux安装 Linux编程 Linux桌面 Linux软件 Linux内核 Linux管理
Linux下的软件安装

s8lol主宰符文怎么配

英雄联盟 网络游戏
s8lol主宰符文怎么配

Linux软件安装之RPM的安装技巧(转)

Linux Linux命令 Linux安装 Linux编程 Linux桌面 Linux软件 Linux内核 Linux管理
Linux软件安装之RPM的安装技巧(转)

Linux下安装php加速软件Xcache的步骤

服务器
Linux下安装php加速软件Xcache的步骤

lol偷钱流符文搭配推荐

英雄联盟 网络游戏
lol偷钱流符文搭配推荐

Linux系统源码安装过程中的prefix选项

Linux Linux命令 Linux安装 Linux编程 Linux桌面 Linux软件 Linux内核 Linux管理
Linux系统源码安装过程中的prefix选项

打造完美linux系统:常用软件安装

Linux Linux命令 Linux安装 Linux编程 Linux桌面 Linux软件 Linux内核 Linux管理
打造完美linux系统:常用软件安装

lolAD刺客新符文搭配推荐

英雄联盟
lolAD刺客新符文搭配推荐

成功替换Win7宋体为XP宋体

成功替换Win7宋体为XP宋体

Linux more命令如何使用?

Linux more命令如何使用?
下拉加载更多内容 ↓