源码的编译与安装

上一篇 / 下一篇  2013-01-09 19:10:49 / 个人分类:个人知识总结

一、什么是源码包软件;51Testing软件测试网S_B5H Dh@4_m

J4\]3QV+|0
顾名思义,源码包就是源代码的可见的软件包,基于LinuxBSD系统的软件最常见;在国内源可见的软件几乎绝迹;大多开源软件都是国外出品;在国内较为出名的开源软件有fcitx;lumaqq;Lumaqqscim等;51Testing软件测试网T1Ed^%of,x!b3^

但软件的源代码可见并不等于软件是开源的,我们还要以软件的许可为准;比如有些软件是源码可见的,但他约定用户只能按他约定的内容来修改;比如vbb论坛程序;所以一个软件是否是开源软件,得具备两个条件;一是源代码可见;二是要有宽松的许可证书,比如GPL证书等;51Testing软件测试网ncb3D3O3|/@'M

GNU LinuxBSD社区中,开发人员在放出软件的二进制软件包的同时,也会为我们提供源代码软件包;
cC xH/{5z1X0
!uaW0PC.l]0Bh0
二、源代码有何用?
`(l3b*MnB?0
51Testing软件测试网~%[H"Zg,g
一个软件的如果有源码,是任何人都能看到他是怎么开发而来的,就像一个瓶子,比如瓶子制作的模具是什么;需要什么材料;具体的用途以及瓶子的详细说明书等等。软件的开放源码就是类似,开发者在给我们软件的同时,也会告诉我们软件是怎么开发出来的;只要我们的水平足够的高,所有的代码都在那里,我们就可以修改和定制软件,以适合我们的需要;如果
Windows开放源代码,并以GPL发布,一样是有人能造出来N多的Windows发行版;遗憾的是Windows并不是开源系统;
ONk!t*IoR)A"uT0
4H-{m6_xE-R0
所以软件的源代码的用处无非是以下两点;
A)T(d,G6a#J0
51Testing软件测试网7a}C6c:}(}+e$Z
1
、软件根据用户的需要加以定制;51Testing软件测试网.d{IQ#x2Z
2
、二次开发;注:要根据软件的许可证书约定为准,开发者许可二次开发才行;
p,s&Hw0u"r&Q!Ca051Testing软件测试网5Q'lN-fe8A:~c l%\;]ZF
三、怎样安装以源码包打包的软件;51Testing软件测试网a~y$yM5@
51Testing软件测试网9`:?+T#R_%k| }V"u*E
1
、源码包的打包格式;

yPBdq2S'a0

源代码一般以file.tar.gz file.tar.bz2file.src.rpm打包;file.tar.gzfile.tar.bz2格式的解包命令如下;51Testing软件测试网O/y3x!UL&G8bh\

[root@localhost beinan]# tar jxvf file.tar.bz251Testing软件测试网R|@ \#lvL
[root@localhost beinan]# tar zxvf file.tar.gz

I-zJ.P;h0

51Testing软件测试网2Mg9WA$X%EM
至于file.src.rpm的用法,请参见:linux.chinaitlab.com/set/39788.html">file.src.rpm使用方法的简介》51Testing软件测试网`3i4DkFs|f}Uq

*Qz0D7|6p:J7OD02
、如何编译安装源码包;(大多数)51Testing软件测试网"p5n"]uL3zq J

a&X5B9r4a[.P`5Q01
)解开软件包查看帮助文档;51Testing软件测试网m:i&xGNy3O

%e4a6M(mky0
我们解开一个包后,进入解压包,一般都能发现README(或reame)INSTALL(install);或doc(或DOC)目录;看名字就知道个差不多;51Testing软件测试网dL'Pp0U5G;Lxe

比如我们下载一个比较新的fcitx的软件包,比如是 fcitx-3.2-050827.tar.bz251Testing软件测试网e1I4XME2f4\VC(^

我们在解开这个软件包会会发现如下的文件;51Testing软件测试网#{-~%L'js!\qy&E

[root@localhost fcitx]# tar jxvf fcitx-3.2-050827.tar.bz251Testing软件测试网O] G"aA8G
[root@localhost fcitx]#cd fcitx51Testing软件测试网AhrNF3D1i
[root@localhost fcitx]# ls51Testing软件测试网]*s0b2v1} ny`0B&P
aclocal.m4 config.guess configure debian INSTALL Makefile.in src xpm51Testing软件测试网|%T;Y ?kjQ!VL
AUTHORS config.h.in configure.in depcomp install-sh missing THANKS51Testing软件测试网kld9s\]G:E
autogen.sh config.rpath COPYING doc lib mkinstalldirs TODO51Testing软件测试网-Ihy$Ry\N]+T
ChangeLog config.sub data fcitx.spec.in Makefile.am README tools

Upo8T1g[p1A(R0

所以我们就可以看fcitxINSTALLdoc目录的安装文档了;里面都告诉我们如何安装;

fk }F(f]#c#}0

有时安装文档也会在开发者的主页上有详细的说明,及常见问题的处理等;比如linux.chinaitlab.com/info/38307.html" target=_blank>LumaQQ
{V ug?Xmg5~0
51Testing软件测试网3Od5R-F$F SEU)B
2
)编译安装软件的条件;
|D"RUt]+b){0
51Testing软件测试网1x0GJ9O5`%O9b
首先我们在Linux系统中至少得把开发工具安装上,比如gcc ;perl;python;glibc;gtk;make ;automake等开发工具或基础包;还要安装一些相应的开发包,一般是文件名包括dev的,比如kernel-devel;还有一些开发库,比如以lib开头的;如果您在编译软件时,有时提示缺少什么东西之类的,大多少的是这些开发工具和开发库等;从光盘中找出安装就是了;有时光盘没有提供,请用google搜索相应的软件包,有时可能也会用到源码包编译安装所依赖的包;51Testing软件测试网Y^+q7c8Uzc

有时本来系统中已经安装了所依赖的包,但系统提示找不到应该怎么办?这时需要我们设置一下PKG_CONFIG_PATH的环境变量就行了;51Testing软件测试网]xA1OC f

#export PKG_CONFIG_PATH=/usr/lib/pkgconfig
5OO/B.|;| o/b1}MT0

)w | d Ui]H0#export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig
D| {!DT_0
然后我们再来运行编译的./configure ;make ;make install,尝试着来吧;
51Testing软件测试网&dGe O3C x"u:C$[1U8L

java开发的工具开发的程序,要用到jre或者jdkjdk已经包括jre了,所以如果我们只是要求有一个java程序运行的环境,只需要安装jre就行了;安装好jre,配置一下java的环境变量就可以用了。如果是图形界面的程序,点点鼠标就OK了;51Testing软件测试网3tD |0?#m6L

perl开发的程序,是需要perl环境的,所以必须得把perl的包安装上,python也同理;
8|V/?5X c_jP7T|0
51Testing软件测试网z@eP|8w
3
)编译安装软件的方法;

*f`Wn(w5F|I0

大多以tar.gztar.bz2打包软件,大多是通过./configure ;make ;make install来安装的;有的软件是直接make;make install51Testing软件测试网/VxR3Uf+LI/f

我们可以通过./configure --help来查看配置软件的功能;大多软件是提供./configure配置软件的功能的;少数的也没有,如果没有的就不用./configure ;直接make;make install就行了;

c]?]!}8{!d4yB0

./configure比较重要的一个参数是--prefix,用--prefix参数,我们可以指定软件安装目录;当我们不需要这个软件时,直接删除软件的目录就行了;

l)d ? Z+y5@%dF h&F0

比如我们可以指定fcitx安装到/opt/fcitx目录中;51Testing软件测试网d Gy\[|

[root@localhost fcitx]#./configure --prefix=/opt/fcitx

*Inqfu%y5s0

如果我们不需要fcitx时,可以直接删除/opt/fcitx目录;

$b8]&Hy/R X}8F7~0

所以我们举这个例子中,fcitx如果定制安装到/opt/fcitx目录中,完整的安装方法应该是:51Testing软件测试网'{-KV&rH

[root@localhost fcitx]# tar jxvf fcitx-3.2-050827.tar.bz2
!k*j#mXVS)~9X0MA0
[root@localhost fcitx]#cd fcitx51Testing软件测试网Rh ZTC/Y
[root@localhost fcitx]# ./configure --prefix=/opt/fcitx51Testing软件测试网CO SR r1_i
[root@localhost fcitx]# make
/y+CVu5eM`\)Wh0
[root@localhost fcitx]# make install

){ Tv+y9?d0

调用fcitx,应该是51Testing软件测试网.{]#_O%A}9`C4g6A

[beinan@localhost ~]#/opt/fcitx/bin/fcitx51Testing软件测试网BbX$T2g

如果您想要让fcitx只要执行fcitx,就能调用,请配置环境变量,或者在/usr/bin中做一个fcitx的链接;51Testing软件测试网d@9b+h3Q1i]1ZAK

[root@localhost beinan]# ln -s /opt/fcitx/bin/fcitx /usr/bin/fcitx51Testing软件测试网/X$le?uPB+gT2K

一般的情况下都有说,但大多软件没有提供源码包的卸载方法;我们可以找到软件的安装点删除。主要看你把它安装在哪了。

d"I%g S'q"R4[0

设置环境变量PATH,请参见:《在Fedora Core中,有些常用命令怎么没有?解决办法设置PATH51Testing软件测试网 o-p1J[.t9qq.u

所以您的PATH可以设置成这样的;

/B2q.va(ifM(n0

export PATH=".:/bin:/usr/bin:/usr/local/bin:/usr/sbin:/usr/X11R6/bin:/sbin:/opt/fcitx/bin"

?;j1rV&h4t-n0

当然这只是举个例子,fcitx可以进入桌面自动运行的,请参看http://www.fcitx.org官方站上的安装说明;举个例子只是让大家好理解一点;51Testing软件测试网V{3V Y!o~n

再举一个例子,比如我想安装mlterm;并指定安装目录为/opt/mlterm中;http://mlterm.sourceforge.net

`)xb4\}u0

#./configure --prefix=/opt/mlterm
'K{:V^%qx0
#make51Testing软件测试网0u#q0c"W.A x@G"}A
#make install

dM,f*]SM { z8x4?4F0


~%_e0n"V'c$j0
把源码包安装的软件,都指定安装在/opt目录中,这样不就知道了软件安装在哪里了;也方便卸载;
B_~$IX F0

T5W|].Y9FV03.
其它类型软件;51Testing软件测试网H t$}^:Hu+R,P

S'nf\;D_wE _01
)基于perlpython的程序的安装;51Testing软件测试网 F4`4t$j G-dJ7G2H

`$f p*a n f:dWP0
一般情况下,用#perl file.pl安装;比如:VMwareLinux版本的安装;51Testing软件测试网@q9i+nyv(_

[root@localhost vmware-distrib]# perl vmware-install.pl

c2GV,Uow0

基于python开发,也得用python file.py来安装51Testing软件测试网3C1V?o9FQ,e

一般软件包都有READMEINSTALL或者DOC文档,看文档安装;51Testing软件测试网9]0j1_(^5X%Q"M

[ vM5a#uC(V a9g02
)有些安装程序是脚本型的调用;要用#sh文件名51Testing软件测试网.}l!dCh I[.q

gbtVU0
比如NVdia驱动的安装就是这样的;51Testing软件测试网&y{Y(v0T[+p

[beinan@localhost ~]# sh NFORCE-Linux-x86-1.0-0306-pkg1.run

I'ut.v'C6K,E0

当然也能通过chmod 755 NFORCE-Linux-x86-1.0-0306-pkg1.run,然后./NFORCE-Linux-x86-1.0-0306-pkg1.run来安装;

4S'Em[']_:Y+q'I1j0

也有一些是以file.bin文件

%zf0UaZ1c6@S]S0

[beinan@localhost ~]# chmod 755 file.bin51Testing软件测试网 \!K;YX2Zc{6B
[beinan@localhost ~]# ./file.bin

x7Qz}*Q0

大抵如此。。。。。。。。51Testing软件测试网atL9D Z*K@

后记: 源码包及特殊格式的软件安装就写这么多,写的再多也是写不完。我们主要还是以软件的安装文档为准;安装软件时,如果只是简单的应用,如果有rpm包,尽可能的用rpm包;主要是方便和易于管理;
Vt'h$@4NDd%YIkF0
F9bGvbp1P*e0
附录:

NK1y(vDJ*Qui0

安装软件时,最好用各自发行版所提供的系统软件包管理工具,对于Fedora/Redhat您可以参考如下文章51Testing软件测试网"[:}0I1spU

0RPM基础 《RPM的介绍和应用》51Testing软件测试网8b$E7]8Z^0Ee

1Fedora系统管理软件包工具system-config-packages,方便的添加和移除系统安装盘提供的软件包,详情请看 《Fedora软件包管理器system-config-packages

(PZ)r}SGb5o0

2Redhat系统管理软件包工具,新一点的系统应该是redhat-config-packages,用法和 《Fedora软件包管理器system-config-packages 一样;51Testing软件测试网0dM6}bc ]J

3apt + synaptic软件包在线安装、移除、升级工具; 用法:《用apt+synaptic在线安装或升级Fedora core 4.0软件包》51Testing软件测试网+V@4sS,L] \
4
yum软件包在线安装、升级、移除工具;用法:《Fedora/Redhat在线安装更新软件包,yum篇》

|1Qb~9?#mAR0

5《file.src.rpm使用方法的简介》51Testing软件测试网E%ru2@d

6《如何编译安装源码包软件》51Testing软件测试网"V0iu/WJ @;p%`%J lF

目前aptyum已经极为成熟了,建议我们安装软件时采用apt或者yum;如果安装系统盘提供的软件包,可以用system-config-packagesredhat-config-packages

-X ?h;eqD0

 

U+@ zA)ZL l ] h0

TAG:

 

评分:0

我来说两句

luoriver

luoriver

北漂一族,80后,计算机专业,从事SIP相关软件测试3年,热爱生活,崇尚运动。 爱看WWE、公开课。爱钻“牛角尖”,这就是我:luorivr!!!!!

日历

« 2024-03-31  
     12
3456789
10111213141516
17181920212223
24252627282930
31      

数据统计

  • 访问量: 345166
  • 日志数: 96
  • 图片数: 1
  • 建立时间: 2012-12-27
  • 更新时间: 2014-05-03

RSS订阅

Open Toolbar