笔记 第22章软件安装和tarball包 鸟哥的linux私房菜第三版
来源:互联网 发布:绝地求生优化太垃圾了 编辑:程序博客网 时间:2024/04/28 05:13
1、什么是开放源码、编译程序与和可执行文件?程序的源代码时纯文本文档,通过编译器编译(gcc),利用已经存在的函数库,生成可执行文件(binary file)。编译过程中会生成目标文件(object file)为*.o!2、什么时函数库?类似子程序,可以被调用来执行的一段功能函数。用户运行程序是很多功能可以通过调用系统本身自带的函数库,可以简化编写量,并且更加安全。3、什么是make和configure?make是一个可以一次编译大量源码的软件,当make运行时会找名为Makefile的文件,并根据Makefile文件记录的编译规则对目录中的源码文件编译。但是不同的计算机的系统是不同的所以为了软件在不同的系统上运行就需要不同的Makefile文件,通过检测程序(congfigure或者config)就可以自动的生成本系统下需要的Makefile文件。检测程序需要的4点:适合编译的源码文件、软件(相关库或其他程序)、系统平台、内核的头定义文件(header include)4、什么是Tarball软件Tarball文件是用tar打包压缩过的源码文件包。通常有*.tar.gz或是*.tgz还有*.tar.bz2k,一般里面有:源代码文件检测程序文件(可能是config或configure文件)本软件的简易说明和安装说明(INSTALL或README)其中最重要的是INSTALL或README文件,安装前一定要认真阅读。5、安装与升级软件为什么要升级?有两种升级方法:直接用源码编译安装升级直接用编译好的二进制程序安装升级Red Hat系统用的rpm软件管理机制和yum在线更新模式,Debian系统用的dpkg软件管理机制和APT在线更新模式等都的使用第二种方法。Tarball如何安装:1、将Tarball由厂商的网页上下载下来2、将Tarball解压缩,生成很多的源码文件3、开始以gcc进行源码的编译(会生成目标文件)4、然后以gcc进行函数库、主程序、子程序的链接,生成主要的二进制文件5、将上述的二进制文件以及相关的配置文件安装到自己的主机上上述步骤中的3、4步骤可以直接用make命令一次完成。6、gcc的基本参数和功能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文件(也就是源文件前指定的头文件)的目录,默认的<stdio.h>放在/usr/include下面7、makefile的基本语法与变量目标(target):目标文件1 目标文件2....<tar>gcc -o 欲新建的可执行文件 目标文件1 目标文件2 ....注意:makefile中#表示批注<tab>需要在命令行中的第一个字符目标(target)与相关文件(就是目标文件)之间需要一个“ :”隔开目标文件之间要用空格隔开8、上面的目标(target)表示的是make后加的命令例如:main 、clear等使用时可以make main或者make clear9、在makefile文件中可以使用变量。变量与变量的内容用“ =”隔开变量左边不可以有<tab>变量与变量内容两边不可以有“ :”习惯上变量最好时“ 大写字母”运用变量时以${变量}或$(变量)shell中的环境变量可以被套用命令行中也可以定义变量10、环境变量的取用规则:1、make命令行后面加的环境变量2、makefile里面指定的环境变量3、shell原本据有的环境变量注:"$@"代表了目标(target)11、Tarball的管理和建议Tarball软件包安装所需的基础软件:1、gcc或cc等C语言编译程序(compiler)2、make及autoconfig等软件3、Kernel提供的Library以及相关的include文件yum groupinstall "Development Tools"yum groupinstall "X Software Development"12、安装的基础操作:1、取得源文件:将tarball文件在/usr/local/src目录下解压缩;2、进入tarball解压出的目录,查看INSTALL或README文件3、根据INSTALL/README的内容查看并且安装好一些相关的软件(有可能不需要)4、建立makefile文件。(输入./configure或者./config)5、编译:用make命令即可6、安装:以make install命令一般在makefile文件中就有makeinstall的相关配置所以一般的源码安装命令为:./configuremake cleanmakemake install13、把Tarball的原始数据解压缩到/usr/local/src中,最好不要按软件的默认安装,应该在/usr/local/下建立一个单独的目录,把软件的所需文件放在此目录下,按装完成后把“ /usr/local/软件名/bin”加入PATH中。/usr/local/软件名/man也要加入man page搜索路径中。这样有利于以后的软件的升级和删除等管理14、用patch更新源码patch -p数字<patch_file:p后面的数字(xx)数字是几就是现在的相对路径拿掉几个/的意思patch -R<path_file:就可以还原了.15、数据库管理:什么是动态数据库(Dynamic)与静态数据库(Static)?他们对数据库升级有什么影响?编译行为有什么不同?独立执行的状态?发行版(distredution)的选择是什么?16、ldconfig与/etc/ld.so.confldconfig作用是把/etc/ld.so.conf文件中记录的动态函数库加载到内存中这样在软件需要这些函数库中的文件时就比在硬盘中读取快捷。首先,我们先在/etc/ld.so.conf里写下想要读入高速缓存动态函数库的目录利用ldconfig把/etc/ld.so.conf的数据读入缓存中同时也将数据记录一份在/etc/ld.so.cache文件中ldconfig 【-f conf】conf是文件名即用conf作为libarary函数库的取得路径 【-C cache】用cache的文件名替代/etc/ld.so.cache作为缓存暂存的函数库资料 【-p】列出所有的函数库内容17、ldd 『-vdr』『filename』:查看filename文件的动态函数库有哪些;-v:列出所以内容信息-d:重新将数据有丢失的link点显示出来-r:将ELF有关的错误内容显示出来例如:ldd /usr/bin/passwd18、检验软件的正确性通过文件独特的指纹验证数据,因为每个文件的大小都不相同,所以如果一个文件被修改过,就必然有部分信息不一样!现在使用比较广泛的是MD5与SHA1加密机制;md5sum/sha1sum [-bct] filenamemd5sum/sha1sum [--status|--warn] --check filename-b :使用二进制读取方式,默认为Windows/Dos文件的读取方式-c:检验文件指纹-t:以文本类型来读取文件指纹例如:md5sum Centos-5.3-i386-netinstall.iso得到的md5sum指纹码可以与官网上的指纹码对比验证。sha1sum用法也一样。
0 0
- 笔记 第22章软件安装和tarball包 鸟哥的linux私房菜第三版
- 鸟哥的Linux私房菜(基础篇)- 第二十二章、软件安装:原始码与 Tarball
- 鸟哥的Linux私房菜10.28 软件安装:原始码与 Tarball
- 《鸟哥的Linux私房菜》读书笔记:软件安装——源代码与Tarball
- 笔记 第5章 鸟哥的linux私房菜第三版
- Linux 学习笔记 -- 第五部分 Linux 系统管理员 -- 第22章 软件安装:源码与 Tarball
- 学习Linux 《鸟哥的Linux私房菜 基础学习篇(第三版)》--第14章 Linux账号管理和ACL权限设定1。 笔记
- 《鸟哥的Linux的私房菜》 学习笔记——原码与Tarball套件管理
- 第29周-鸟哥的Linux私房菜基础篇第三版-第四章 安装CentOS
- 学习Linux 《鸟哥的Linux私房菜 基础学习篇(第三版)》--第6章 Linux的档案权限与目录配置 笔记
- 学习Linux 《鸟哥的Linux私房菜 基础学习篇(第三版)》--第7章 Linux档案与目录管理 笔记
- 学习Linux 《鸟哥的Linux私房菜 基础学习篇(第三版)》--第8章 Linux磁盘与文件系统管理 笔记
- 第29周-鸟哥的Linux私房菜基础篇第三版-第三章 主机规划与磁盘分区
- 学习Linux 《鸟哥的Linux私房菜 基础学习篇(第三版)》--第3章主机规划与磁盘划分 笔记
- 学习Linux 《鸟哥的Linux私房菜 基础学习篇(第三版)》--第5章首次登陆与在线求助 笔记
- 学习Linux 《鸟哥的Linux私房菜 基础学习篇(第三版)》--第10章 认识与学习Bash 笔记
- 学习Linux 《鸟哥的Linux私房菜 基础学习篇(第三版)》--第13章 学些shell script 笔记
- 第22章 软件安装 原始码与tarball
- Unable to execute dex
- Unicode与FFFE(记一个蛋疼的项目)
- Android 源代码中增加新apk
- View及ViewGroup的事件分发及传递(二)
- ios 加载本地的Html文件
- 笔记 第22章软件安装和tarball包 鸟哥的linux私房菜第三版
- HDU 3549Flow Problem(网络流之最大流)
- *.exe 中发生了缓冲区溢出
- 对账简单说
- cclabelttf字体不显示的解决办法
- VS2010下配置GTK+2.0
- ACDream 1101 瑶瑶想要玩滑梯 线段树
- oracle 中 cursor 与refcursor及sys_refcursor的区别 (转载)
- OCP 1Z0 052 94