LinuxTOY 是一个致力于提供 Linux 相关资讯的专题站点。如果您发现了好用好玩的 Linux 东东并愿意发扬自由、分享的精神,可以点击顶部导航 Contact 按钮进行投稿。

Related entries

Latest entries

从源代码安装软件

在什么情况之下,我们需要从源代码安装软件呢?我想不外乎这些情形:一种情况是软件放出了新的版本,而所用的发行版并没有及时跟进,这时候,想要尝鲜的话,就非得靠自己不可;另一种情形是不管是软件的开发者,还是现用的系统都没有提供可直接使用的二进制包,而自己又非要使用该软件,那么也需亲自出马才行;当然,还有其他的情形。总而言之,学会从源代码安装软件是一项非常重要的技能。

那么,要如何才能从源代码安装软件呢?首先,你必须要做好为编译源代码所需的准备工作。这包括两个方面:

  1. 编译工具:要将源代码编译成可执行的二进制文件,编译工具必不可少。在 Ubuntu 中,可以从终端中执行 sudo apt-get install build-essential 指令来安装基本的编译工具。根据所编译程序的实际情况,你也可能需要安装其他一些工具。
  2. 编译依赖:除了安装基本的编译工具之外,为了顺利编译源代码,我们也要把该程序所需要的依赖安装好。Ubuntu 系统可以通过 sudo apt-get build-dep 命令后跟包名的方式来准备所需的依赖。如果在 Ubuntu 中无法通过这样的办法来安装依赖的话,那么应该善于阅读源码包中所含的 README、INSTALL 等文件,一般程序作者都有说明,只需按要求做即可。

在编译源代码之前,你一定把软件的源码包下载到了自己的硬盘上吧。一般而言,程序源码包经常被打包成 .tar.gz 和 .tar.bz2 这两种格式。前者可用 tar zxvf *.tar.gz 来解包,后者则用 tar jxvf *.tar.bz2。通常,在解包后,我们应该阅读程序附带的相关说明文件,如 README(自述文件)、INSTALL(安装文件)等,以便了解程序的编译介绍。

当所有的事情都准备妥当了后,那么让我们来进行源代码编译的三部曲吧。

  1. 配置:这是编译源代码的第一步,通过 ./configure 命令完成。执行此步以便为编译源代码作准备。常用的选项有 --prefix=PREFIX,用以指定程序的安装位置。更多的选项可通过 --help 查询。也有某些程序无需执行此步。
  2. 编译:一旦配置通过,可即刻使用 make 指令来执行源代码的编译过程。视软件的具体情况而定,编译所需的时间也各有差异,我们所要做的就是耐心等候和静观其变。此步虽然仅下简单的指令,但有时候所遇到的问题却十分复杂。较常碰到的情形是程序编译到中途却无法圆满结束。此时,需要根据出错提示分析以便找到应对之策。
  3. 安装:如果编译没有问题,那么执行 sudo make install 就可以将程序安装到系统中了。

若是觉得所编译的软件不够适用想要删除,又如何做呢?我们只需转到编译源代码的目录,执行 sudo make uninstall 命令。

9 Comments

  1. Matt 1 Matt Commented @ 2007-01-23 11:12 pm

    这应该是安装编译autotools管理的软件源码包吧。
    还是会碰到人手写的makefile的,可能不太一样;
    CMake管理的包包又是怎么样呢?

  2. 嘿熊 2 嘿熊 Commented @ 2007-01-24 2:16 am

    apt不支持编译安装的?

  3. dNgpNg 3 dNgpNg Commented @ 2007-01-24 3:31 am

    还是喜欢在最后一步sudo checkinstall 安装并生成deb包,留起来以后要是再安装就方便了

  4. huzhenghui37 4 huzhenghui37 Commented @ 2007-01-24 1:35 pm

    越来越喜欢看你的Linuxtoy了。

  5. Dsc 5 Dsc Commented @ 2007-02-16 2:33 pm

    新手
    我照你说的在64位 下编译transmission貌似成功了(因为没有出错提示 --||),可是怎么也找不到可以执行的文件。
    谢谢!!!帮帮忙。呵呵
    PS:新年快乐。

  6. Dsc 6 Dsc Commented @ 2007-02-16 2:52 pm

    厄 用起了……
    我想问下,这样安装,运行程序一般是放在哪里啊?

  7. Toy 7 Toy Commented @ 2007-02-16 9:41 pm

    @Dsc:如果你在配置时没有指定安装的目录,那么一般在 /usr/local/bin 中。另外,在你所编译的源码目录中也可以找到二进制文件。

  8. Dsc 8 Dsc Commented @ 2007-02-16 11:44 pm

    谢谢~

  9. stlxv 9 stlxv Commented @ 2007-07-26 3:20 pm

    这是autotools系的才可以这样做

    软件下载完解压后,会有一个文件告诉你怎么编译怎么安装,照着它做就行了。一般文件名为README/INSTALL。即使是这种autotools的也会很详细地写清楚过程的。