Linux Ubuntu:从源文件安装软件

2010年11月29日   系统专区   0条评论   4877人围观过  
  最近开始研究如何定制Android的ROM了,不过这个东西要深度定制,就得研究得比较透彻,所以在Linux下制作ROM必不可少。装个Linux,我选Ubuntu,因为以前还用过,但是安装容易,使用难,现在在Ubuntu下打个包都不会,真是郁闷了好几天。慢慢的,研究出一点东西来就记录一点,免得以后忘记了。

  打包华为Android手机ROM要用到mkyaffs2image,可是我到现在还没搞懂如何才能获得这个命令。Ubuntu中文论坛上我也发帖研究好几天了,一直无果。知道是要编译文件,网上找了半天,好容易找到一篇如何编译的,写得比较易懂的文章,故转载来记录一下,反正是基础,慢慢学习嘛。

  在Ubuntu 中附带了丰富的软件,这些软件一般使用图形化的自动方式(“添加/删除”或“新立得”)即可轻松安装,但是对于那些刚刚问世的新软件,Ubuntu的源中还未收录其中,这时我们就需要用到一种更通用的安装方式:通过手工方式从源文件来安装这些软件。下面就介绍这种手工安装方式的详细步骤。

一、 安装编译程序



  因为要编译源代码,所以第一步就是安装编译和构建之类的程序。如果你已经安装过了,可以跳过此步。在Ubuntu系统中非常简单,只要执行下面命令就行了:

$ sudo apt-get install build-essential


  该命令执行后,从源文件安装软件所需的工具,如gcc、make、g++及其他所需软件就安装好了。

二、下载并编译软件的源代码



  当我们下载源文件时,一定要弄清该软件所依赖的库文件和其他程序,并且首先将它们装好。这些信息,通常都能在该开源项目的主页上查找到。做好这些准备工作后,我们就可以进行下面的工作了。因为,软件的源代码通常以压缩文件形式发布,所以需要将其解压到指定目录。命令如下所示:

OwnLinux@ubuntu:~$ tar xvzf program.tar.gz

OwnLinux@ubuntu:~$ cd program/


  在 Linux下从源文件安装程序时,有一个通用模式,即配置(./configure)–>编译(make) –> 安装(sudo make install)。但是,此前你最好还是阅读源文件中附带的安装说明,因为对于每个程序,其开发者的指示才是最具权威性的。程序开发者通常将安装说明存放在名为INSTALL或README。到哪里找这些文件呢?它们在项目主页或源代码主目录中都能找到。

1.配置

  构建应用的第一步就是执行configure脚本,该脚本位于程序源文件的主目录下:

./configure


  该脚本将扫描系统,以确保程序所需的所有库文件业已存在,并做好文件路径及其他所需的设置工作。如果程序所需的库文件不完全,该配置脚本就会退出,并告诉您还需要哪些库文件或者是哪些版本太旧需要更新。如果遇到这种情况,仅弄到含有该库文件的软件包还是不够的,同时还要找到具有该库文件所有头文件的开发包,在Ubuntu中,这样的包一般以-dev作为文件名的结尾。安装好所有需要的库文件后,重新运行配置脚本,直到没有错误提示为止,这说明需要的库文件已经全部安装妥当了即满足了依赖关系。

2.编译

  当配置脚本成功退出后,接下来要做的就是编译代码了。具体操作为在源文件的主目录中运行make命令:

make


  这时,您会看到一串编译输出数据迅速从屏幕上滚过,如果正常的话,系统会返回的提示符状态。然而,如果编译过程中出现错误的话,排错的过程可就不像配置步骤那么简单了。因为,这通常要涉及到源代码的调试,可能源代码有语法错误,或其他错误等等。怎么办?如果您是编程高手,那就自己调试吧!否则,检查该软件的邮件列表等支持渠道,看看是不是已知的bug,如果是就看看别人是怎么解决的,不是就提交一份bug报告吧,也许不久就会有解决办法。

3.安装

  当软件成功编译后,最后一步就是将它们安装到系统上。大部分程序的makefile文件中都会有一个用于安装的函数。需要注意的是,大多时候我们必须作为 root用户来安装程序,这样程序就把文件安装到/usr或其他只有超级用户才有写权限的目录中。依旧是在源文件的主目录下,执行如下命令:

sudo make install


  好了,这样程序就会安装到您的计算机上了。另外,当您不再使用该程序时,可以使用软件所带的卸载功能,一般程序都会具备此功能。切换至源文件的主目录下,执行以下命令即可:

sudo make uninstall


  多数情况下,利用上面介绍的方法安装的程序,都位于/usr/local下面。若想让安装的程序文件与Ubuntu巡视的文件系统隔离开的话,可以为命令添加项,如下所示:

./configure –prefix=/opt


  尽管这样做一般都是有效的,但是也有例外,有些程序根本不理会项;有些程序如含有内核模块的程序,会把它们自己全部放进您的文件系统。

  上面介绍的手工安装软件的方法虽然是针对Ubuntu环境来介绍的,但是各种Linux系统下的从源文件安装应用的方法基本上都大同小异。
  •  zxykc
     发布于 2010-12-26 03:54:58  回复该评论
  • 虚拟机里玩过,但是它现在还不普及,所以不太了解。
    •  ShunYea
       发布于 2010-12-26 21:27:04  回复该评论
    • 研究Android必须的,没法了,硬着头皮上了。

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。