笔记 第22章软件安装和tarball包 鸟哥的linux私房菜第三版


1、什么是开放源码、编译程序与和可执行文件?
	程序的源代码时纯文本文档,通过编译器编译(gcc),利用已经存在的函数库,生成可执行文件(binary file)。编译过程中会生成目标文件(object file)为*.o!

2、什么时函数库?
	类似子程序,可以被调用来执行的一段功能函数。用户运行程序是很多功能可以通过调用系统本身自带的函数库,可以简化编写量,并且更加安全。

3、什么是makeconfigure?
	make是一个可以一次编译大量源码的软件,当make运行时会找名为Makefile的文件,并根据Makefile文件记录的编译规则对目录中的源码文件编译。但是不同的计算机的系统是不同的所以为了软件在不同的系统上运行就需要不同的Makefile文件,通过检测程序(congfigure或者config)就可以自动的生成本系统下需要的Makefile文件。
	检测程序需要的4点:适合编译的源码文件、软件(相关库或其他程序)、系统平台、内核的头定义文件(header include4、什么是Tarball软件
	Tarball文件是用tar打包压缩过的源码文件包。通常有*.tar.gz或是*.tgz还有*.tar.bz2k,一般里面有:
	源代码文件
	检测程序文件(可能是configconfigure文件)
	本软件的简易说明和安装说明(INSTALLREADME)
其中最重要的是INSTALLREADME文件,安装前一定要认真阅读。

5、安装与升级软件
	为什么要升级?
	有两种升级方法:
		直接用源码编译安装升级
		直接用编译好的二进制程序安装升级
	Red Hat系统用的rpm软件管理机制和yum在线更新模式,Debian系统用的dpkg软件管理机制和APT在线更新模式等都的使用第二种方法。
	Tarball如何安装:
	1、将Tarball由厂商的网页上下载下来
	2、将Tarball解压缩,生成很多的源码文件
	3、开始以gcc进行源码的编译(会生成目标文件)
	4、然后以gcc进行函数库、主程序、子程序的链接,生成主要的二进制文件
	5、将上述的二进制文件以及相关的配置文件安装到自己的主机上
	上述步骤中的34步骤可以直接用make命令一次完成。

6gcc的基本参数和功能
	gcc 源文件:直接生成可执行文件(默认文件名为:a.out	gcc -c 源文件:生成源文件.o的目标文件
	gcc -o 可执行文件 目标文件1.o 目标文件2.o....:把目标文件链接成可执行文件
	gcc -O数字:可以进行文件优化,数字代表优化等级有(1 2 3)默认为等级2.
	gcc -Wall:产生更详细的编译过程信息。
	gcc -l:在编译过程中加入某个函数库的意思,比如要加入libm.so这个动态函数库就可以用gcc -lm这个命令。其中lib与拓展名(.a.so不需要写)
	gcc -L/path:可以加需要加入的函数库路径,如果函数库不在/lib/usr/lib中就必须要指明路径。
	gcc -I/path:后面加的路径是去搜索相关的include文件(也就是源文件前指定的头文件)的目录,默认的放在/usr/include下面

7makefile的基本语法与变量
	目标(target):目标文件1 目标文件2....
		gcc -o 欲新建的可执行文件 目标文件1 目标文件2 ....
	注意:
		makefile#表示批注
		需要在命令行中的第一个字符
		目标(target)与相关文件(就是目标文件)之间需要一个“ :”隔开
		目标文件之间要用空格隔开

8、上面的目标(target)表示的是make后加的命令例如:main clear等使用时可以make main或者make clear

9、在makefile文件中可以使用变量。
	变量与变量的内容用“ =”隔开
	变量左边不可以有
	变量与变量内容两边不可以有“ :”
	习惯上变量最好时“ 大写字母”
	运用变量时以${变量}$(变量)
	shell中的环境变量可以被套用
	命令行中也可以定义变量

10、环境变量的取用规则:
	1make命令行后面加的环境变量
	2makefile里面指定的环境变量
	3shell原本据有的环境变量
	注:"$@"代表了目标(target11Tarball的管理和建议
	Tarball软件包安装所需的基础软件:
		1gccccC语言编译程序(compiler		2makeautoconfig等软件
		3Kernel提供的Library以及相关的include文件
	yum groupinstall "Development Tools"
	yum groupinstall "X Software Development"
	
12、安装的基础操作:
	1、取得源文件:将tarball文件在/usr/local/src目录下解压缩;
	2、进入tarball解压出的目录,查看INSTALLREADME文件
	3、根据INSTALL/README的内容查看并且安装好一些相关的软件(有可能不需要)
	4、建立makefile文件。(输入./configure或者./config	5、编译:用make命令即可
	6、安装:以make install命令一般在makefile文件中就有makeinstall的相关配置
	所以一般的源码安装命令为:
		./configure
		make clean
		make
		make install
	
13、把Tarball的原始数据解压缩到/usr/local/src中,最好不要按软件的默认安装,应该在/usr/local/下建立一个单独的目录,把软件的所需文件放在此目录下,按装完成后把“ /usr/local/软件名/bin”加入PATH中。/usr/local/软件名/man也要加入man page搜索路径中。这样有利于以后的软件的升级和删除等管理

14、用patch更新源码
	patch -p数字后面的数字(xx)数字是几就是现在的相对路径拿掉几个/的意思
	patch -R就可以还原了.

15、数据库管理:
	什么是动态数据库(Dynamic)与静态数据库(Static?他们对数据库升级有什么影响?编译行为有什么不同?独立执行的状态?发行版(distredution)的选择是什么?

16ldconfig/etc/ld.so.conf
	ldconfig作用是把/etc/ld.so.conf文件中记录的动态函数库加载到内存中这样在软件需要这些函数库中的文件时就比在硬盘中读取快捷。
	首先,我们先在/etc/ld.so.conf里写下想要读入高速缓存动态函数库的目录
	利用ldconfig/etc/ld.so.conf的数据读入缓存中
	同时也将数据记录一份在/etc/ld.so.cache文件中
ldconfig -f confconf是文件名即用conf作为libarary函数库的取得路径
	 -C cache】用cache的文件名替代/etc/ld.so.cache作为缓存暂存的函数库资料
	 -p】列出所有的函数库内容	

17ldd -vdr』『filename』:查看filename文件的动态函数库有哪些;
	-v:列出所以内容信息
	-d:重新将数据有丢失的link点显示出来
	-r:将ELF有关的错误内容显示出来
	例如:ldd /usr/bin/passwd

18、检验软件的正确性
	通过文件独特的指纹验证数据,因为每个文件的大小都不相同,所以如果一个文件被修改过,就必然有部分信息不一样!现在使用比较广泛的是MD5SHA1加密机制;
	md5sum/sha1sum [-bct] filename
	md5sum/sha1sum [--status|--warn] --check filename
	-b :使用二进制读取方式,默认为Windows/Dos文件的读取方式
	-c:检验文件指纹
	-t:以文本类型来读取文件指纹
	例如:md5sum Centos-5.3-i386-netinstall.iso得到的md5sum指纹码可以与官网上的指纹码对比验证。sha1sum用法也一样。	
	

你可能感兴趣的:(linux基础)