仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 442|回复: 8
打印 上一主题 下一主题

[其他Linux] 来一发编译安装软件就那末回事儿

[复制链接]
萌萌妈妈 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-15 22:12:19 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
给你装的系统里为ubuntu12.04,它已经封装的很臃肿了,但是考虑到你没有很多时间投入其中,所以给你装了它,但是怎么用它提高开发效率,需要你在学习的过程中不断总结;
  编译软件

  ubuntu堆栈有着不计其数的软件,假如加上第三方的堆栈,你能够失掉更多!但是,有些情形下,大概必要你经由过程源码来编译安装软件(相干引导请移步CompilingEasyHowTo):
  1、堆栈中的软件包不成用;
  2、堆栈中的软件包太旧了;
  3、堆栈中的软件包,因某些缘故原由招致程序的一般功效不成用;
  4、堆栈中的软件包大概有些bug被一切者修复了;
  5、你想经由过程测试来匡助作者修复某些bug;
  6、大概只是你想重新入手下手,尝尝手动编译一个程序;



  情况

  你必要依据写成相干程序的言语,来编译软件。被请求编译的使用程序一般是由C和C++写成的,在这类情形下,你必要安装编译器gcc,能够经由过程安装build-essential软件包来猎取。一般情形下,你必要上面的命令操纵来完成:
  1. sudoapt-getinstallbuild-essential
复制代码
  为了可以运转configure和autogen.sh文件,必要更多的程序:
  1. sudoapt-getinstallautomake
复制代码
  最初,必要CheckInstall平安的将程序装载到你的体系中:
  1. sudoapt-getinstallcheckinstall
复制代码
  假如程序是由java写成的,那末你还必要一个javarun-time和compiler。你能够依据java页的申明来安装java。偶然候必要一个基于构建工具ant的java,软件包能够从ubuntu堆栈取得:
  1. sudoapt-getinstallgcj
复制代码
  假如程序是由注释言语写成的,好比python和perl,那末你仅仅必要一个剖析器,这个是ubuntu默许安装的,你能够间接运转程序,尽年夜多半情形下,你能够间接从ubuntu堆栈中安装那些为了运转程序而必需的python和perl程序。更多注释言语的谍报请参考文章开头!
  你真的必要编译吗?

  假如你编译软件只是由于软件堆栈里的不成用,那末请在UbuntuPackageSearch中搜刮软件包!良多作者同时也制造了他们本人的PPA,它们也能够被增加到你的软件源里。很多作者制造的PPA源的中央是Launchpad,你也能够经由过程命令行,利用上面的命令搜刮相干软件的keyword(固然了,请利用实践术语取代keyword)!
  1. apt-cachesearch<keyword>
复制代码
  猎取源

  一般,源码包会以作者本人网站的某种情势来供应!一般的格局是tar.gz和tar.gz2大概zip。你可使用文件解紧缩工具,经由过程上面的命令来解压他们:
  1. tar-xvffile.tar.gztar-xvffile.tar.bz2unzipfile.zip
复制代码
  偶然候,也必要利用CVS剪切边沿代码,你能够经由过程sudoapt-getinstallcvs来安装CVS。比方,检索NetworkManager的源码,写出上面的命令:
  1. cvs-d:pserver:anonymous@anoncvs.gnome.org:/cvs/gnomelogin
复制代码
  1. cvs-d:pserver:anonymous@anoncvs.gnome.org:/cvs/gnomecoNetworkManager
复制代码
  假如你是从CVS安装,请参阅文章最初的先容。
  良多软件包,可使用Bazaar(sudoapt-getinstallbzr)从upstream猎取以后的代码,而无需手动查找版本把持地位。比方:
  1. bzrgetlp:network-manager
复制代码
  三步编译

  尽年夜多半linux上必要源码安装的程序能够经由过程./configure;make;makeinstall这三步来完成安装,而最坚苦的一步常常都在./configure这一步,那前面的几步是能够很轻松的完成的。
  Configure

  configure是用来做上面这些事的一个剧本:
  1、用以反省盘算机创建包所必需的完全性;
  2、匡助你依据必要改动默许的路径;
  3、用以激活/禁用编译程序中的各类选项;
  4、用以改动程序将要被安装的路径;
  你能够经由过程实行上面的命令来检察特定configure剧本所供应的选项个功效:
  1. ./configure--help|less
复制代码
  比方,默许的configure剧本会指定安装到/usr/local上面,假如你想改动路径,能够实行上面显现的configure剧本命令:
  1. sudoapt-getinstallautomake0
复制代码
  假如你真的想从零入手下手编译,能够仔细研读一下README大概INSTALL文件。你会看到必要甚么样的软件碎片,比起在包体系中,在这些文件中他们一般有着纷歧样的名字。接上去,能够经由过程利用apt-cache工具来寻觅响应的包。假如你已经由过程堆栈中编译包,那末另有一个窍门,就是经由过程上面的命令来安装包的依附:
  1. 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大概更快一些):
  1. sudoapt-getinstallautomake2
复制代码
  利用auto-apt和下面是一样的,假如把auto-apt交换成auto-apt!
  6、假如编译软件禁用失利的选项,可使用./configure&ndash;disable-FEATURE选项。
  7、假如你本人没能修复你碰到的成绩,你也能够追求ubuntu官方的匡助哦。
  假如基本不存在configure的文件,那末最好检察一下configure.ac文件(有需要仔细浏览一下INSTALL和README文件),假如configure.ac文件存在,那就是开辟者健忘创立终极configure文件了,你能够本人创立,不外必要autoconf包:
  1. sudoapt-getinstallautomake3
复制代码
  安装乐成以后,键进:
  1. sudoapt-getinstallautomake4
复制代码
  假如侥幸的话,一个可事情的configure文件应当被创立了。
  编译

  可喜可喝,configure步骤已完成了,真实的编译安装能够入手下手了。十分复杂:
  1. sudoapt-getinstallautomake5
复制代码
  如今假如统统顺遂的话,你应当的到了一个可事情的程序copy在你的源目次下,你能够运转上面的命令来试用一下:
  1. sudoapt-getinstallautomake6
复制代码
  假如程序这一步失利了,那末就有多是程序的bug,这时候候你最好接洽一下作者,告知他程序的成绩。
  安装软件包
  假如统统停顿顺遂的话,你能够键进上面的命令来安装程序:
  1. sudoapt-getinstallautomake7
复制代码
  利用CheckInstall能够创立一个.deb包,这货稍后能够很简单被移除哦!
  但是,因为某些缘故原由,你不想利用CheckInstall,这是安装的最初办法(不保举):
  1. 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搜刮能够匡助找到称号稍许变更的文件,比方:
  1. sudoapt-getinstallautomake9
复制代码
  2、python组件被称作python-module,因而pythonmysql组建被称作python-mysqldb,映照在这里少有分歧,apt-cache能够给一些匡助!像如许搜刮一下:
  1. sudoapt-getinstallcheckinstall0
复制代码
  一般所需匡助文档在被请求安装的组件傍边!
  3、ruby组件的定名和perl有些相似,由于activesupport是libactivesuport-ruby[1.8|1.9](假如没有出格请求,默许是1.8)。固然了,你也能够安装ruby保证理平台rubygems,但是,debian/ubuntu封闭了一些晋级功效,确保rubygems可使用apt一般事情。假如你想坚持ruby的最新版本,能够看一下RubyOnRails。
  1. 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:59 | 只看该作者
任何人都可以根据自己的喜好来定制适合自己的操作系统,Linux?是抢占式多任务多用户操作系统.
冷月葬花魂 该用户已被删除
板凳
发表于 2015-1-22 07:54:35 | 只看该作者
再次,Linux是用C语言编写的,我们有学习C语言的基础,读程序和编写代码方面存在的困难小一点,也是我们能较快掌握的原因之一。?
admin 该用户已被删除
地板
发表于 2015-1-31 05:09:04 | 只看该作者
了解Linux的网络安全,系统的安全,用户的安全等。安全对于每位用户,管理员来说是非常重要的。
小妖女 该用户已被删除
5#
发表于 2015-2-6 17:41:37 | 只看该作者
说实话小时候没想过搞IT,也计算机了解也只是一些皮毛,至于什么UNIX,Linux,听过没见过,就更别说用过了。?
6#
发表于 2015-2-18 00:23:34 | 只看该作者
感谢老师和同学们在学习上对我的帮助。
老尸 该用户已被删除
7#
发表于 2015-3-6 00:49:18 | 只看该作者
熟读写基础知识,学得会不如学得牢。
兰色精灵 该用户已被删除
8#
发表于 2015-3-12 18:17:00 | 只看该作者
感谢老师和同学们在学习上对我的帮助。
不帅 该用户已被删除
9#
发表于 2015-3-20 01:41:51 | 只看该作者
我是学习嵌入式方向的,这学期就选修了这门专业任选课。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-11-14 14:42

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表