Tarball 安装的基本步骤
我们提过以 Tarball 方式释出的套件是需要重新编译可执行的 binary file 的。而 Tarball 是以 tar 这个指令来打包与压缩的档案,所以啦,当然就需要先将 Tarball 解压缩,然后到原始码所在的目录下进行 makefile 的建立,再以 make 来进行编译与安装的动作啊!所以整个安装的基础动作大多是这样的:
1. 将 tarball 档案在 /usr/local/src 目录下解压缩;
2. 进入新建立的目录底下,去查阅 INSTALL 与 README 等相关档案内容( 很重要的步骤! );
3. 根据 INSTALL/README 的内容察看并安装好一些相依的套件( 非必要 );
4. 以自动侦测程式( configure 或 config )侦测作业环境,并建立 Makefile 这个档案;
5. 以 make 这个程式,并使用该目录下的 Makefile 做为他的参数设定档,来进行 make ( 编译或其他 )的动作;
6. 以 make 这个程式,并以 Makefile 这个参数设定档,依据 install 这个标的( target )的指定来安装到正确的路径!
注意到上面的第二个步骤,通常在每个软体在释出的时候,都会附上 INSTALL 或者是 README 这种档名的说明档,这些说明档请‘确实详细的’ 阅读过一遍,通常这些档案会记录这个软体的安装要求、软体的工作项目、 与软体的安装参数设定及技巧等,只要仔细的读完这些档案,基本上,要安装好 tarball 的档案,都不会有什么大问题啰。至于 makefile 在制作出来之后,里头会有相当多的标的( target ),最常见的就是 install 与 clean 啰!通常‘make clean’代表著将目标档( object file )清除掉,‘make’则是将原始码进行编译而已。 注意喔!编译完成的可执行档与相关的设定档还在原始码所在的目录当中喔!因此,最后要进行‘make install’来将编译完成的所有咚咚都给他安装到正确的路径去,这样就可以使用该套件啦!
OK!我们底下约略提一下大部分的 tarball 软体之安装的指令下达方式:
1. ./configure
这个步骤就是在建立 Makefile 这的档案啰!通常程式开发者会写一支 scripts 来检查您的 Linux 系统、相关的套件属性等等,这个步骤相当的重要, 因为未来您的安装资讯都是这一步骤内完成的!另外,这个步骤的相关资讯应该要参考一下该目录下的 README 或 INSTALL 相关的档案!!基本上,这个步骤完成之后会建立( 或修改 )一个 Makefile ,这就是参数档啦!
2. make clean
make 会读取 Makefile 中关于 clean 的工作。这个步骤不一定会有,但是希望执行一下! 为什么呢?因为在进行编译的时候,会产生一些 *.o 的档案,例如有个 abc.c 的原始码,经过编译后会产生 abc.o 的档案!我们称这些档案为 object file ,这些档案如果之前已经编译过并留下来的话,那么这次再编译的时候, 就不会编译该档案,然而由于我们可能已经修改了部分的参数,因此该档案的编译结果事实 上应该会有所不同!因此,为了避免前一次留下来的资料可能影响到这次编译的结果, 所以通常可以进行一下这个步骤啰!
3. make
make 会依据 Makefile 当中的预设工作进行编译的行为!编译的工作主要是进行 gcc 来将原始码编译成为可以被执行的 object files ,但是这些 object files 通常还需要一些函式库之类的 link 后,才能产生一个完整的执行档!使用 make 就是要将原始码编译成为可以被执行的可执行档,而这个可执行档会放置在目前所在的目录之下, 尚未被安装到预定安装的目录中;
4. make install
通常这就是最后的安装步骤了,make 会依据 Makefile 这个档案里面关于 install 的项目,将上一个步骤所编译完成的资料给他安装到预定的目录中, 就完成安装啦!
请注意,上面的步骤是一步一步来进行的,而 其中只要一个步骤无法成功,那么后续的步骤就完全没有办法进行的! 因此,要确定每一的步骤都是成功的才可以!举个 例子来说,万一今天你在 ./configure 就不成功了,那么就表示 Makefile 无法被建立起来,要知道,后面的步骤都是根据 Makefile 来进行的,既然无法建立 Makefile ,后续的步骤当然无法成功啰!另外,如果在 make 无法成功的话,那就表示原始档案无法被编译成可执行档,那么 make install 主要是将编译完成的档案给他安装下去的,既然都没有成功的执行档了,怎么进行安装? 所以啰,要每一个步骤都正确无误才能往下继续做!此外,如果安装成功, 并且是安装在独立的一个目录中,例如 /usr/local/packages 这个目录中好了,那么您就必需手动的将这个套件的 man page 给他放到 /etc/man.config 里面去。
阅读(2220) | 评论(0) | 转发(1) |