仓酷云
标题:
来一发编译安装软件就那末回事儿
[打印本页]
作者:
萌萌妈妈
时间:
2015-1-15 22:12
标题:
来一发编译安装软件就那末回事儿
给你装的系统里为ubuntu12.04,它已经封装的很臃肿了,但是考虑到你没有很多时间投入其中,所以给你装了它,但是怎么用它提高开发效率,需要你在学习的过程中不断总结;
编译软件
ubuntu堆栈有着不计其数的软件,假如加上第三方的堆栈,你能够失掉更多!但是,有些情形下,大概必要你经由过程源码来编译安装软件(相干引导请移步CompilingEasyHowTo):
1、堆栈中的软件包不成用;
2、堆栈中的软件包太旧了;
3、堆栈中的软件包,因某些缘故原由招致程序的一般功效不成用;
4、堆栈中的软件包大概有些bug被一切者修复了;
5、你想经由过程测试来匡助作者修复某些bug;
6、大概只是你想重新入手下手,尝尝手动编译一个程序;
登录/注册后可看大图
20140908132129107141.JPG
(79.27 KB, 下载次数: 13)
下载附件
保存到相册
来一发编译安装软件就那末回事儿
2015-1-15 22:12 上传
情况
你必要依据写成相干程序的言语,来编译软件。被请求编译的使用程序一般是由C和C++写成的,在这类情形下,你必要安装编译器gcc,能够经由过程安装build-essential软件包来猎取。一般情形下,你必要上面的命令操纵来完成:
sudoapt-getinstallbuild-essential
复制代码
为了可以运转configure和autogen.sh文件,必要更多的程序:
sudoapt-getinstallautomake
复制代码
最初,必要CheckInstall平安的将程序装载到你的体系中:
sudoapt-getinstallcheckinstall
复制代码
假如程序是由java写成的,那末你还必要一个javarun-time和compiler。你能够依据java页的申明来安装java。偶然候必要一个基于构建工具ant的java,软件包能够从ubuntu堆栈取得:
sudoapt-getinstallgcj
复制代码
假如程序是由注释言语写成的,好比python和perl,那末你仅仅必要一个剖析器,这个是ubuntu默许安装的,你能够间接运转程序,尽年夜多半情形下,你能够间接从ubuntu堆栈中安装那些为了运转程序而必需的python和perl程序。更多注释言语的谍报请参考文章开头!
你真的必要编译吗?
假如你编译软件只是由于软件堆栈里的不成用,那末请在UbuntuPackageSearch中搜刮软件包!良多作者同时也制造了他们本人的PPA,它们也能够被增加到你的软件源里。很多作者制造的PPA源的中央是Launchpad,你也能够经由过程命令行,利用上面的命令搜刮相干软件的keyword(固然了,请利用实践术语取代keyword)!
apt-cachesearch<keyword>
复制代码
猎取源
一般,源码包会以作者本人网站的某种情势来供应!一般的格局是tar.gz和tar.gz2大概zip。你可使用文件解紧缩工具,经由过程上面的命令来解压他们:
tar-xvffile.tar.gztar-xvffile.tar.bz2unzipfile.zip
复制代码
偶然候,也必要利用CVS剪切边沿代码,你能够经由过程sudoapt-getinstallcvs来安装CVS。比方,检索NetworkManager的源码,写出上面的命令:
cvs-d:pserver:anonymous@anoncvs.gnome.org:/cvs/gnomelogin
复制代码
cvs-d:pserver:anonymous@anoncvs.gnome.org:/cvs/gnomecoNetworkManager
复制代码
假如你是从CVS安装,请参阅文章最初的先容。
良多软件包,可使用Bazaar(sudoapt-getinstallbzr)从upstream猎取以后的代码,而无需手动查找版本把持地位。比方:
bzrgetlp:network-manager
复制代码
三步编译
尽年夜多半linux上必要源码安装的程序能够经由过程./configure;make;makeinstall这三步来完成安装,而最坚苦的一步常常都在./configure这一步,那前面的几步是能够很轻松的完成的。
Configure
configure是用来做上面这些事的一个剧本:
1、用以反省盘算机创建包所必需的完全性;
2、匡助你依据必要改动默许的路径;
3、用以激活/禁用编译程序中的各类选项;
4、用以改动程序将要被安装的路径;
你能够经由过程实行上面的命令来检察特定configure剧本所供应的选项个功效:
./configure--help|less
复制代码
比方,默许的configure剧本会指定安装到/usr/local上面,假如你想改动路径,能够实行上面显现的configure剧本命令:
sudoapt-getinstallautomake0
复制代码
假如你真的想从零入手下手编译,能够仔细研读一下README大概INSTALL文件。你会看到必要甚么样的软件碎片,比起在包体系中,在这些文件中他们一般有着纷歧样的名字。接上去,能够经由过程利用apt-cache工具来寻觅响应的包。假如你已经由过程堆栈中编译包,那末另有一个窍门,就是经由过程上面的命令来安装包的依附:
sudoapt-getinstallautomake1
复制代码
这能够确保一切所需的包以来都能够被安装,以期configure不会因为过旧的依附包而报错,不然你将不能不持续编译相干的依附。
寻觅并修复configure的妨碍
刚巧鄙人面这几种情形下,configure大概会失利:
1、编译的时分必要-dev包;
2、要编译GNOME使用那末必要响应的gnome-level;而编译KDE使用则必要kde-level;
3、C和C++库的称号老是以lib开首,因而,假如./configure报错说丧失了库foo,那末你必要安装libfoo-dev包;
4、假如configure说要“Xincludes”,那末你大概必要安装上面这些包“xlibs-dev,xlibs-static-dev,x-window-system-dev”,注重,偶然候,仅仅必要xorg-dev和x-dev就能够了。-Racecar56UnderJaunty则必要安装xorg-dev和libx11-dev。
5、检察哪些包被必要的技能,可使用auto-apt工具大概apt-file工具(auto-apt大概更快一些):
sudoapt-getinstallautomake2
复制代码
利用auto-apt和下面是一样的,假如把auto-apt交换成auto-apt!
6、假如编译软件禁用失利的选项,可使用./configure–disable-FEATURE选项。
7、假如你本人没能修复你碰到的成绩,你也能够追求ubuntu官方的匡助哦。
假如基本不存在configure的文件,那末最好检察一下configure.ac文件(有需要仔细浏览一下INSTALL和README文件),假如configure.ac文件存在,那就是开辟者健忘创立终极configure文件了,你能够本人创立,不外必要autoconf包:
sudoapt-getinstallautomake3
复制代码
安装乐成以后,键进:
sudoapt-getinstallautomake4
复制代码
假如侥幸的话,一个可事情的configure文件应当被创立了。
编译
可喜可喝,configure步骤已完成了,真实的编译安装能够入手下手了。十分复杂:
sudoapt-getinstallautomake5
复制代码
如今假如统统顺遂的话,你应当的到了一个可事情的程序copy在你的源目次下,你能够运转上面的命令来试用一下:
sudoapt-getinstallautomake6
复制代码
假如程序这一步失利了,那末就有多是程序的bug,这时候候你最好接洽一下作者,告知他程序的成绩。
安装软件包
假如统统停顿顺遂的话,你能够键进上面的命令来安装程序:
sudoapt-getinstallautomake7
复制代码
利用CheckInstall能够创立一个.deb包,这货稍后能够很简单被移除哦!
但是,因为某些缘故原由,你不想利用CheckInstall,这是安装的最初办法(不保举):
sudoapt-getinstallautomake8
复制代码
注重:
1、假如程序是内核的一个组件,那末还必要gcc-3.4(onbreezy)和kernel-headers,他们稍后可使用sudoapt-getinstallgcc-3.4linux-headers-$(uname-r)来安装。请注重,每内核晋级后,那末内核组件也必需从头编译,而新的header也必需从头下载。要编译完全内核,请拜见KernelCompile。
2、假如你想从头编译已存在的debian的软件包,可使用dpkg-buildpackage-rfakeroot,假如一般包丧失了,buildscript会告知你包的名字!
3、假如你从revisioncontrol(CVS,Bazaar,等.)举行编译,一般必要猎取revisioncontrol的源码,以后增添一个步骤,运转autogen.sh剧本,为你天生configure剧本。
注释言语
一般注释言语在必需组件未安装的情形下会运转失利。
1、perl组建一般相似于foo::bar(比方xml::parser),但是,它的包为称为ibfoo-bar-perl(libxml-parser-perl),经由过程apt-cache搜刮能够匡助找到称号稍许变更的文件,比方:
sudoapt-getinstallautomake9
复制代码
2、python组件被称作python-module,因而pythonmysql组建被称作python-mysqldb,映照在这里少有分歧,apt-cache能够给一些匡助!像如许搜刮一下:
sudoapt-getinstallcheckinstall0
复制代码
一般所需匡助文档在被请求安装的组件傍边!
3、ruby组件的定名和perl有些相似,由于activesupport是libactivesuport-ruby[1.8|1.9](假如没有出格请求,默许是1.8)。固然了,你也能够安装ruby保证理平台rubygems,但是,debian/ubuntu封闭了一些晋级功效,确保rubygems可使用apt一般事情。假如你想坚持ruby的最新版本,能够看一下RubyOnRails。
sudoapt-getinstallcheckinstall1
复制代码
批评
为了找到更好的技能,你能够思索在CompilingEasyHowTo猎取加倍有好的匡助。并且,你会发明CheckInstall也是很有匡助的:
1、checkinstall不是文档中形貌的默许办法?有些人刚入手下手编译的时分不喜好利用checkinstall,有缘故原由吗?
修正每页,我都是相称的审慎,我但愿人人都能批准!
2、file-roller不克不及用来解压文件?没有人必需要记着“-jxvf”!请先容一些尽量复杂的操纵工具,初级用户能够在数百万的收集文档里找到命令行的捷径,“this”文档应当只供应了然的办法,如许可让人人更注意其ubuntu来,并且也能够更简单的运转那些不为人知的软件包!
实践上,“tarxffile”已充足了,GNUtar已能够主动探测并解紧缩它们了。假如用户想要具体的输出信息,则可使用"tarxvffile"。如果shell中编译的最初几步在供应一个GUI步骤,大概招致更加严峻的成绩!
这则引导申明是给开辟者的仍是用户的?
原文地点:点击扫瞄转自于IMCN
文件处理命令:file、mkdir、grep、dd、find、mv、ls、diff、cat、ln
作者:
愤怒的大鸟
时间:
2015-1-17 16:56
任何人都可以根据自己的喜好来定制适合自己的操作系统,Linux?是抢占式多任务多用户操作系统.
作者:
冷月葬花魂
时间:
2015-1-22 07:54
再次,Linux是用C语言编写的,我们有学习C语言的基础,读程序和编写代码方面存在的困难小一点,也是我们能较快掌握的原因之一。?
作者:
admin
时间:
2015-1-31 05:09
了解Linux的网络安全,系统的安全,用户的安全等。安全对于每位用户,管理员来说是非常重要的。
作者:
小妖女
时间:
2015-2-6 17:41
说实话小时候没想过搞IT,也计算机了解也只是一些皮毛,至于什么UNIX,Linux,听过没见过,就更别说用过了。?
作者:
仓酷云
时间:
2015-2-18 00:23
感谢老师和同学们在学习上对我的帮助。
作者:
老尸
时间:
2015-3-6 00:49
熟读写基础知识,学得会不如学得牢。
作者:
兰色精灵
时间:
2015-3-12 18:17
感谢老师和同学们在学习上对我的帮助。
作者:
不帅
时间:
2015-3-20 01:41
我是学习嵌入式方向的,这学期就选修了这门专业任选课。
欢迎光临 仓酷云 (http://ckuyun.com/)
Powered by Discuz! X3.2