Chapter 22 软件安装:原始码与Tarball

1. 开放源码的软件安装不升级简介

1.1 什么是开放源码、编译程序不可执行文件
1.2 什么是函式库

1.3 什么是 make 与 configure

configure是检测环境的程序,检测完毕会建立makefile


1.4 什么是 Tarball 的软件

  • tar打包
  • gzip压缩 *.tar.gz
    bzip2压缩 *.tar.bz2

1.5 如何安装不升级软件

2. 使用传统程序诧言迚行编译的简单范例

2.1 单一程序:印出 Hello World

  • 一步到位:gcc hello.c 生产 a.out 通过 ./a.out执行
  • 两步:gcc -c hello.c 生成 hello.o
    gcc -o hello.o 生成 hello 通过 ./hello执行

2.2 主、子程序链接:子程序的编译

gcc -c thanks.c thanks_2.c
gcc -o thanks(可执行程序名) thanks.o thanks_2.o (两个目标文件)

Cflags 如 -O 和 -Wall

  • gcc -O -c thanks.c thanks_2.c
    大写O是为了产生优化
  • gcc -Wall -c thanks.c thanks_2.c
    Wall是为了产生更详细的编译过程信息

2.3 呼叫外部函式库:加入连结的函式库

  • lxxx(库的名字)
  • L/path(上面指定的库的位置) 【默认会搜寻/lib和/usr/lib】
  • I/path(include中的库的位置)


3. 用 make 宏编译

3.1 为什么要用 make

$@:代表目前的标的(target)

3.2 makefile 的基本语法不变量

4. Tarball 的管理与建议

4.1 使用原始码管理软件所需要的基础软件

  • gcc等complier
  • make, autoconfig等可以检测用户操作系统环境,自行建立makefile
  • Kernel提供的Library和相关的include文件
    eg. Red hat(包含Fedora/CentOS等)中,这个核心相关的功能通常包含在kernel-source或kernel header这些软件中。

PS:若已经安装好linux主机但缺乏上述软件,可以通过RPM(需原始光盘)或者yum(需要online)来安装。

4.2 Tarball 安装的基本步骤

  • ./configure 生成makefile
  • make clean
  • make 将c编译成obj
  • make install

4.3 一般 Tarball 软件安装的建议事项 (如何移除?升级?)

升级可能不方便

4.4 一个简单的范例、利用 ntp 来示范

4.5 利用 patch 更新原始码

5. 函式库管理

5.1 静态与非静态函数库

5.2 ldconfig 不 /etc/ld.so.conf
5.3 程序的劢态凼式库解析: ldd

  1. 检验软件的正确性
    6.1 md5sum / sha1sum

你可能感兴趣的:(Chapter 22 软件安装:原始码与Tarball)