Linux平台编写翻译安装源码包软件详解

一、什么是Linux源码包软件;

 

顾名思义,源码包正是源代码的可知的软件包,基于Linux和BSD系统的软件最布满;在国内源可知的软件差没多少告罄;诸多开源软件都是外国产品;在境内相比有名的开源软件有fcitx;lumaqq;Lumaqq及scim等;

http://www.360doc7.net/wxarticlenew/541275971.html

但软件的源代码可见并不等于软件是开源的,大家还要以软件的特许为准;比如有个别软件是源码可知的,但他约定用户只好按她约定的剧情来修改;举例vbb论坛程序;所以二个软件是不是是开源软件,得具有五个规范化;一是源代码可知;二是要有宽松的许可证书,举例GPL证书等;

 

在GNU
Linux或BSD社区中,开荒职员在释放软件的二进制软件包的同期,也会为大家提供源代码软件包;

一、什么是源码包软件?

二、源代码有啥用?

 

一个软件的只要有源码,是任何人都能见到她是怎么支付而来的,就疑似二个酒瓶,比方多管瓶制作的模具是何等;必要怎么样资料;具体的用处以及双陆瓶的事无巨细表明等等。软件的开放源码便是近似,开拓者在给大家软件的同不日常候,也会告诉大家软件是怎么支付出来的;只要大家的品位丰裕的高,全部的代码都在那边,大家就足以修改和定制软件,以符合大家的急需;假使Windows开放源代码,并以GPL发表,同样是有人能造出来N多的Windows发行版;遗憾的是Windows并不是开源系统;

顾名思义,源码包正是源代码的可知的软件包,基于Linux和BSD系统的软件最普及;在国内源可知的软件大概绝迹;繁多开源软件都以国外产品;在国内相比知名的开源软件有fcitx;luma;Luma及scim等;

为此软件的源代码的用途无非是以下两点;

 

1、软件依据用户的内需加以定制;

但软件的源代码可知并不等于软件是开源的,我们还要以软件的许可为准;比如有个别软件是源码可知的,但他约定用户只可以按她约定的源委来修改;举个例子vbb论坛程序;所以一个软件是不是是开源软件,得具有八个规范;一是源代码可知;二是要有宽松的许可证书,举例GPL证书等;

2、一次开采;注:要根据软件的许可证书约定为准,开荒者许可三遍支付才行;

 

三、如何设置以源码包打包的软件;

在GNU Linux或BSD社区中,开辟职员在放出软件的二进制软件包的还要,也会为我们提供源代码软件包;

1、源码包的打包格式;

 

源代码一般以file.tar.gz file.tar.bz2或file.src.rpm
打包;file.tar.gz和file.tar.bz2格式的解包命令如下;

二、源代码有什么用?

[root@localhost beinan]# tar jxvf file.tar.bz2
[root@localhost beinan]# tar zxvf file.tar.gz

 

关于file.src.rpm 的用法,请参见下一页 《file.src.rpm 使用情势的简要介绍》

二个软件的比如有源码,是任哪个人都能收看他是怎么支付而来的,就疑似多少个凤尾瓶,举个例子梅瓶制作的模具是何等;供给什么质地;具体的用处以及花瓶的详实表达书等等。软件的开放源码正是近乎,开采者在给大家软件的同一时间,也会告诉大家软件是怎么支付出来的;只要大家的水平丰富的高,全数的代码都在这里,大家就足以修改和定制软件,以合乎大家的急需;假使Windows开放源代码,并以GPL发表,同样是有人能造出来N多的Windows发行版;遗憾的是 Windows并不是开源系统;

2、怎么样编写翻译安装源码包;(大多数)

 

1)解开软件包查看援救文书档案;

因此软件的源代码的用途无非是以下两点;

大家解开一个包后,进入解压包,一般都能发现README(或reame)和INSTALL(
或install);或doc(或DOC)目录;看名字就明白个大概;

 

诸如我们下载三个相比较新的fcitx 的软件包,举例是 fcitx-3.2-050827.tar.bz2

1、软件依照用户的急需加以定制;

我们在解开这几个软件包会会开采如下的公文;

 

[root@localhost fcitx]# tar jxvf fcitx-3.2-050827.tar.bz2

2、一回开辟;注:要基于软件的许可证书约定为准,开采者许可二遍支付才行;

[root@localhost fcitx]#cd fcitx

 

[root@localhost fcitx]# ls

三、如何设置以源码包打包的软件

aclocal.m4 config.guess configure debian INSTALL Makefile.in src xpm

 

AUTHORS config.h.in configure.in depcomp install-sh missing THANKS

1、源码包的打包格式

autogen.sh config.rpath COPYING doc lib mkinstalldirs TODO

 

ChangeLog config.sub data fcitx.spec.in Makefile.am README tools

源代码一般以file.tar.gz file.tar.bz2或file.src.rpm 打包;file.tar.gz和file.tar.bz2格式的解包命令如下;

所以大家就能够看fcitx的INSTALL
和doc目录的设置文书档案了;里面都告知大家什么设置;

 

不时安装文书档案也会在开拓者的主页上有详细的印证,及大面积难点的管理等;

# tar jxvf file.tar.bz2

2)编写翻译安装软件的尺度;

 

率先大家在Linux系统中足足得把开垦工具安装上,比方 gcc
;perl;python;glibc;gtk;make ;automake
等开辟工具或基础包;还要设置一些一见依然的开采包,一般是文件名包涵dev的,比如kernel-devel;还应该有一对开辟库,比如以lib开端的;尽管你在编写翻译软件时,一时提醒贫乏什么东西之类的,好多少的是这一个开采工具和开荒库等;从光盘中找寻安装就是了;不经常光盘没有提供,请用google搜索相应的软件包,有时只怕也会用到源码包编写翻译安装所依靠的包;

# tar zxvf file.tar.gz

偶尔本来系统中一度设置了所注重的包,但系统提示找不到相应怎么做?那时必要大家设置一下PKG_CONFIG_PATH的景况变量就行了;

 

#export PKG_CONFIG_PATH=/usr/lib/pkgconfig

关于file.src.rpm 的用法,请参见:《file.src.rpm 使用办法的简要介绍》

 

#export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig

2、如何编写翻译安装源码包(大多数)

接下来大家再来运维编写翻译的./configure ;make ;make install ,尝试着来啊;

 

以java开拓的工具开采的先后,要用到 jre恐怕jdk
;jdk已经席卷jre了,所以纵然大家只是须求有三个java程序运营的景况,只需求设置jre就行了;安装好jre,配置一下java的景况变量就能够用了。假设是图形分界面包车型地铁程序,点点鼠标就OK了;

1)解开软件包查看扶助文书档案;

用perl 开辟的顺序,是供给perl碰到的,所以必须得把perl的包安装上,python
也同理;

 

3)编写翻译安装软件的方法;

我们解开三个包后,进入解压包,一般都能窥见README(或reame)和INSTALL( 或install);或doc(或DOC)目录;看名字就清楚个大约;

大略以tar.gz 和tar.bz2打包软件,多数是透过 ./configure ;make ;make
install 来安装的;有的软件是一贯make;make install ;

 

咱俩得以通过./configure –help
来查看配置软件的效劳;大多软件是提供./configure
配置软件的遵从的;少数的也平昔不,借使未有的就不用./configure
;直接make;make install 就行了;

譬喻说大家下载一个比较新的fcitx 的软件包,比方是 fcitx-3.2-050827.tar.bz2

./configure 相比较主要的一个参数是 –prefix ,用–prefix
参数,大家得以钦命软件设置目录;当大家没有必要那个软件时,直接删除软件的目录就行了;

 

诸如我们得以内定fcitx 安装到 /opt/fcitx 目录中;

小编们在解开那么些软件包会会开掘如下的公文;

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

 

设若我们无需fcitx 时,能够直接删除 /opt/fcitx 目录;

# tar jxvf fcitx-3.2-050827.tar.bz2

为此大家举那几个事例中,fcitx假如定制安装到
/opt/fcitx目录中,完整的安装方式应该是:

 

[root@localhost fcitx]# tar jxvf fcitx-3.2-050827.tar.bz2

#cd fcitx

[root@localhost fcitx]#cd fcitx

 

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

# ls

[root@localhost fcitx]# make

 

[root@localhost fcitx]# make install

aclocal.m4 config.guess configure debian INSTALL Makefile.in src xpm

调用fcitx ,应该是

 

[beinan@localhost ~]#/opt/fcitx/bin/fcitx

AUTHORS config.h.in configure.in depcomp install-sh missing THANKS

万一你想要让fcitx 只要实施fcitx
,就能够调用,请配置情形变量,恐怕在/usr/bin 中做三个fcitx 的链接;

 

[root@localhost beinan]# ln -s /opt/fcitx/bin/fcitx /usr/bin/fcitx

autogen.sh config.rpath COPYING doc lib mkinstalldirs TODO

相似的动静下都有说,但繁多软件未有提供源码包的卸载方法;大家得以找到软件的安装点删除。首要看你把它安装在哪了。

 

设置碰着变量PATH,请参见http://www.linuxidc.com/Linux/2008-10/16681.htm

ChangeLog config.sub data fcitx.spec.in Makefile.am README tools

从而您的PATH可以设置成那样的;

 

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

之所以大家就足以看fcitx的INSTALL 和doc目录的设置文书档案了;里面都告诉我们如何设置;

道理当然是这样的那只是举个例证,fcitx 可以进来桌面自动运维的,请参见
http://www.fcitx.org 官方站上的装置表达;比方只是让大家好掌握一些;

 

再举叁个例证,比方小编想安装mlterm ;并点名安装目录为/opt/mlterm中;
http://mlterm.sourceforge.net

神迹安装文书档案也会在开垦者的主页上有详细的注解,及广大问题的拍卖等;举例 LumaQQ

#./configure –prefix=/opt/mlterm

 

#make

2)编写翻译安装软件的规格;

#make install

 

把源码包安装的软件,都钦赐安装在
/opt目录中,那样不就知晓了软件安装在哪个地方了;也是有利于卸载;

先是大家在Linux系统中足足得把开拓工具安装上,例如 gcc ;perl;python;glibc;gtk;make ;automake 等开采工具或基础包;还要设置一些对应的开垦包,一般是文本名包罗dev的,举例kernel-devel;还会有一点点开垦库,比方以lib先河的;倘让你在编写翻译软件时,临时提示缺乏什么东西之类的,大多少的是这几个开荒工具和开垦库等;从光盘中寻觅安装正是了;有的时候光盘未有提供,请用google找出相应的软件包,有时也许也会用到源码包编写翻译安装所正视的包;

3.此外项目软件;

 

1)基于perl 和python 的次序的安装;

神迹本来系统中已经设置了所依附的包,但系统提示找不到应有怎么办?那时急需大家设置一下PKG_CONFIG_PATH的环境变量就行了;

一般情状下,用 #perl file.pl安装;举个例子:VMware 的Linux版本的装置;

 

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

#export PKG_CONFIG_PATH=/usr/lib/pkgconfig

基于python 开发,也得用 python file.py 来安装

 

诚如软件包都有README和INSTALL 或然 DOC 文书档案,看文书档案安装;

2)某个安装程序是脚本型的调用;要用 #sh 文件名

 

诸如NVdia驱动的安装就是这么的;

#export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig

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

 

当然也能通过 chmod 755 NFOEnclaveCE-Linux-x86-1.0-0306-pkg1.run ,然后
./NFO奥德赛CE-Linux-x86-1.0-0306-pkg1.run 来设置;

接下来大家再来运营编写翻译的./configure ;make ;make install ,尝试着来吧;

也许有一点是以file.bin 文件

 

[beinan@localhost ~]# chmod 755 file.bin
[beinan@localhost ~]# ./file.bin

以java开荒的工具开辟的次第,要用到 jre或许jdk ;jdk已经席卷jre了,所以一旦大家只是供给有三个java程序运行的条件,只要求设置jre就行了;安装好jre,配置一下java的情状变量就能够用了。如若是图形分界面包车型客车主次,点点鼠标就OK了;

好多如此。。。。。。。。

 

后记:
源码包及特殊格式的软件设置就写这么多,写的再多也是写不完。大家第一仍然以软件的安装文书档案为准;安装软件时,假诺只是轻巧的施用,若是有rpm包,尽恐怕的用rpm包;首如果福利和轻易管理。

用perl 开采的顺序,是内需perl情况的,所以必须得把perl的包安装上,python 也同理;

图片 1

 

3)编译安装软件的不二等秘书籍;

 

许多以tar.gz 和tar.bz2打包软件,多数是经过 ./configure ;make ;make install 来安装的;有的软件是直接make;make install ;

 

作者们能够通过./configure –help 来查看配置软件的机能;许多软件是提供./configure 配置软件的作用的;少数的也并未有,要是未有的就不用./configure ;直接make;make install 就行了;

 

./configure 相比较关键的一个参数是 –prefix ,用–prefix 参数,大家能够钦点软件设置目录;当大家不须要以此软件时,直接删除软件的目录就行了;

 

举例说大家得以钦点fcitx 安装到 /opt/fcitx 目录中;

 

#./configure –prefix=/opt/fcitx

 

比如我们没有须求fcitx 时,能够一贯删除 /opt/fcitx 目录;

 

从而我们举那一个事例中,fcitx假若定制安装到 /opt/fcitx目录中,完整的装置格局应该是:

 

# tar jxvf fcitx-3.2-050827.tar.bz2

 

#cd fcitx

 

# ./configure –prefix=/opt/fcitx

 

# make

 

# make install

 

调用fcitx ,应该是

 

#/opt/fcitx/bin/fcitx

 

设若您想要让fcitx 只要实施fcitx ,就可以调用,请配置碰着变量,大概在/usr/bin 中做一个fcitx 的链接;

 

# ln -s /opt/fcitx/bin/fcitx /usr/bin/fcitx

 

相似的情形下都有说,但大致软件未有提供源码包的卸载方法;大家能够找到软件的安装点删除。首要看您把它安装在哪了。

 

为此您的PATH能够设置成那样的;

 

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

 

自然这只是举个例证,fcitx 能够进去桌面自动运营的,请参见  官方站上的安装表明;比如只是让我们好驾驭一些;

 

再举贰个例子,比方笔者想安装mlterm ;并点名安装目录为/opt/mlterm中;

 

#./configure –prefix=/opt/mlterm

 

#make

 

#make install

 

把源码包安装的软件,都指定安装在 /opt目录中,那样不就精通了软件设置在哪儿了;也惠及卸载;

 

3.别的品类软件

 

1)基于perl 和python 的次序的安装;

 

相似景观下,用 #perl file.pl安装;比方:VMware 的Linux版本的设置;

 

# perl vmware-install.pl

 

基于python 开发,也得用 python file.py 来安装

 

貌似软件包都有README和INSTALL 也许 DOC 文档,看文档安装;

 

2)有个别安装程序是脚本型的调用;要用 #sh 文件名

 

比方NVdia驱动的装置正是那般的;

 

# sh NFORCE-Linux-x86-1.0-0306-pkg1.run

 

本来也能透过 chmod 755 NFO索罗德CE-Linux-x86-1.0-0306-pkg1.run ,然后 ./NFO智跑CE-Linux-x86-1.0-0306-pkg1.run 来设置;

 

也许有一对是以file.bin 文件

 

# chmod 755 file.bin

 

# ./file.bin

 

多数如此。

 

附录

 

安装软件时最佳用各自发行版所提供的连串软件包处理工科具对于Fedora/Redhat
您能够参谋如下作品

 

)RPM 基础 linuxchinaitlabcom/set/html>《RPM 的介绍和平运动用》

 

)Fedora 系统管理软件包工具
systemconfigpackages方便的增进和移除系统安装盘提供的软件包实际情况请看linuxchinaitlabcom/set/html>
《Fedora 软件包管理器systemconfigpackages》

 

)Redhat 系统一管理理软件包工具新一点的系统应该是
redhatconfigpackages 用法和linuxchinaitlabcom/set/html> 《Fedora
软件包管理器systemconfigpackages》 一样

 

)apt + synaptic
软件包在线安装移除晋级工具 用法linuxchinaitlabcom/unix/html>《用apt+synaptic
在线安装或进级Fedora core 软件包》

 

)yum
软件包在线安装跳级移除工具用法linuxchinaitlabcom/set/html>《Fedora/Redhat
在线安装更新软件包yum 篇》

 

)linuxchinaitlabcom/set/html>《filesrcrpm 使用格局的简要介绍》

 

)《怎么样编译安装源码包软件》

 

脚下 apt和yum 已经颇为成熟了提议我们设置软件时行使
apt只怕yum 假使设置系统盘提供的软件包可以用 systemconfigpackages
或redhatconfigpackages

 

一、程序的组成都部队分

 

Linux下程序大都以由以下几片段构成:

 

二进制文件:也正是足以运作的顺序文件

 

库文件:正是惯常大家见到的lib目录下的公文

 

配置文件:这几个不要多说,都晓得

 

帮忙文书档案:平日是大家在linux下用man命令查看的指令的文书档案

 

二、linux下程序的存放目录

 

linux程序的存放目录大约有三个地点:

 

/etc, /bin, /sbin, /lib
 :系统启动就须求动用的先后,那一个目录不可能挂载额外的分区,必须在根文件系统的分区上

 

/usr/bin,/usr/sbin,/usr/lib:操作系统主旨职能,能够独自分区

 

/usr/local/bin,/usr/local/sbin,/usr/local/lib,/usr/local/etc,/usr/local/man:那个用于安装第三方程序,分别对应了二进制文件、库文件、配置文件、援救文书档案的目录

 

普通来讲大家安装程序就安装在 /usr/local目录下

 

三、编写翻译安装源先后

 

1、使用如下命令查看当前是不是安装了gcc编写翻译器,未有能够先用yum安装gcc

 

gcc –version #查阅是还是不是安装gcc

 

2、解压源码包,比方:

 

tar -xvf nginx-1.7.7.tar.gz #解压源码包

 

3、进入解压好的源码包:

 

cd nginx-1.7.7 #进入源码包

 

4、实践configure文件,此文件有多少个效益:1、让用户选确定人员编制写翻译个性;2、检查编译情况。configure实施后将生成MakeFile文件。比如:

 

./configure –prefix=/usr/local/nginx –conf-path=/etc/nginx/nginx.conf

 

其间大家由此–prefix制定了设置路径,通过–conf-path制定了配备文件的具体地点。注意:不是独具的主次的configure参数都以一致的
能够利用 ./configure
–help查看详细参数表达。固然该程序所重视的库在当下系统中没有安装,则会导致configure最终报错,境遇这种场馆就须要您先安装信赖库。

 

5、推行make命令,编写翻译程序

 

make

 

6、编写翻译成功后就足以设置了,实践如下命令

 

make install

 

到此程序固然安装到位了,可是绝不忘了还应该有继续的布署哦

 

四、配置程序

 

1、修改PATH意况变量,以能够分辨此程序的二进制文件路线;

 

修改/etc/profile文件,在文件中 加多

 

export
PATH=$PATH:/path/to/somewhere  #记得是可施行文件所在的目录,路线中不用包涵可施行文件。

 

下一场推行 :

 

source /etc/profile #是我们的退换生效

 

2、暗中认可情形下,系统找寻库文件的路径/lib, /usr/lib;
要扩大额外搜寻路线(注意:有的程序不提供库文件,这就无需此设置了)

 

在/etc/ld.so.conf.d/中开创以.conf为后缀名的文书,而后把要扩充的路线直接写至此文件中;然后试行如下命令使其收效

 

ldconfig

 

3、若是程序提供了库文件,也会相应的提供头文件,一般在装置目录的include目录下,系统暗中认可扫描头文件的路线是:/usr/include。大家得以在/usr/include下用链接连接到大家安装程序的头文件。

 

ln -s /usr/local/nginx/include /usr/include/yourname

 

4、只怕程序还提供了声援文书档案,一般是设置目录下的man目录,为了我们能够应用man命令查看大家先后的相助文书档案,大家要求:在/etc/man.config中增加一条MANPATH,指向大家的文书档案目录

发表评论

电子邮件地址不会被公开。 必填项已用*标注

网站地图xml地图