开放源码的软件安装与升级简介

什么是开放源码、编译器与可运行档

在 Linux 系统上面,一个文件能不能被运行看的是有没有可运行的那个权限 (具有 x permission),不过,Linux 系统上真正认识的可运行档其实是二进位文件 ( binary program),例如 /usr/bin/passwd, /bin/touch 这些个文件即为二进位程序码。

# 先以系统的文件测试看看:
[root@www ~]# file /bin/bash
/bin/bash: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), for GNU/
Linux 2.6.9, dynamically linked (uses shared libs), for GNU/Linux 2.6.9, stripped

# 如果是系统提供的 /etc/init.d/syslog 呢?
[root@www ~]# file /etc/init.d/syslog
/etc/init.d/syslog: Bourne-Again shell script text executable
//如果是 binary 而且是可以运行的时候,他就会显示运行档类别 (ELF 32-bit LSB executable), 同时会说明是否使用动态函式库 (shared libs)
  • 开放源码:就是程序码,写给人类看的程序语言,但机器并不认识,所以无法运行;
  • 编译器:将程序码转译成为机器看的懂得语言,就类似翻译者的角色;
  • 可运行档:经过编译器变成二进位程序后,机器看的懂所以可以运行的文件。

什么是函式库

函式库:就类似副程序的角色,可以被呼叫来运行的一段功能函数。 函式库:就类似副程序的角色,可以被呼叫来运行的一段功能函数。

什么是 make 与 configure

当运行 make 时,make 会在当时的目录下搜寻 Makefile (or makefile) 这个文字档,而 Makefile 里面则记录了原始码如何编译的详细资讯! make 会自动的判别原始码是否经过变动了,而自动升级运行档,是软件工程师相当好用的一个辅助工具。 透过 configure 与 make 进行编译示意图

什么是 Tarball 的软件

所谓的原始程序码,其实就是一些写满了程序码的纯文字文件。纯文字档在网络上其实是很浪费频宽的一种文件格式! 所以啦,如果能够将这些原始码透过文件的打包与压缩技术来将文件的数量与容量减小, 不但让使用者容易下载,软件开发商的网站频宽也能够节省很多很多啊!这就是 Tarball 文件的由来罗!

Tarball 是一个软件包, 你将他解压缩之后,里面的文件通常就会有:

  • 原始程序码文件;
  • 侦测程序文件 (可能是 configure 或 config 等档名);
  • 本软件的简易说明与安装说明 (INSTALL 或 README)。

如何安装与升级软件

基本上升级的方法可以分为两大类,分别是:

  • 直接以原始码透过编译来安装与升级;
  • 直接以编译好的 binary program 来安装与升级。

一个软件的Tarball安装的基本流程:

  1. 将 Tarball 由厂商的网页下载下来;
  2. 将 Tarball 解开,产生很多的原始码文件;
  3. 开始以 gcc 进行原始码的编译 (会产生目标档 object files);
  4. 然后以 gcc 进行函式库、主、副程序的连结,以形成主要的 binary file;
  5. 将上述的 binary file 以及相关的配置档安装至自己的主机上面。