本文共 4767 字,大约阅读时间需要 15 分钟。
软件包管理器
1、打包成一文件:二进制程序,库文件,配置文件,帮助文件 2、生成数据库,追踪所安装的每一个文件 软件包管理器的核心功能: 1、制作软件包; 2、安装、卸载、升级、查询、校验; --------------------------------rpmrpm命令:
rpm: 数据库: /var/lib/rpm rpmbuild:SRPM:其提供的软件内容并没有被编译,它提供的是代码源,需要自己通过编译。 安装的时候RPM与SRPM需要注意的问题 1、软件安装的环境必须与打包时的环境需求一致或相当; 2、需要满足软件的依赖属性需求; 3、反安装时需要特别小心,最底层的软件不可先删除,否则可能造成整个系统的问题, 则此时需要的步骤、用SRPM 先将该文件以RPM管理的方式编译,此时SRPM会被编译成为RPM文件; 然后将编译完成的RPM文件安装到Linux系统中 文件格式 文件名格式 直接安装与否 内含程序类型 可否修改参数并编译 RPM XXX.rpm 可 已编译 不可 SRPM XXX.src.rpm 不可 未编译的源代码 可 RPM的优点 1、RPM内含已经编译过的程序与设置文件等数据,可以让用户免除重新编译的困扰 2、RPM在被安装之前,会先检查系统的硬盘容量、操作系统版本,可避免文件被错误安装 3、RPM文件本身提供软件版本信息、依赖属性软件名称、软件用途说明、软件所含文件等信息,以便与了解软件 4、RPM管理的方式使用数据库记录RPM文件的相关参数,便于升级、删除、查询与验证 rpm: 1、安装(install): rpm -i /PATH/TO/PACKAGE_FILE -h:以#显示进度:每个#表示2% -v:显示详细安装 -vv:显示更详细的过程 rpm -ivh /PATH/TO/PACKAGE_FILE rpm -vih rp-pppoe-3.5-32.1.i386.rpm rpm -ivh --nodeps:忽略依赖关系 --replacepkgs:重新安装,替换原有安装; --force:强行安装,可以实现重装或降级; 在没有网络的情况下,想用光盘来安装,那么就需要 挂载光盘,使用: mount /dev/cdrom /media 找出文件的实际路径:find /media -name 'pam-devel*' 测试此软件是否有依赖性:rpm -ivh pam-devel... --text 直接安装:rpm -ivh pam-devel... 卸载光盘:umount /dev/cdrom 2、查询 (query) rpm -q PACKAGE_NAMEPACKAGE_NAME rpm -qa:查询已经安装的所有包 rpm -qi PACKAGE_NAME:查询指定包的说明信息; rpm -ql PACKAGE_NAME:查询指定安装包后生成的文件列表; rpm -qc PACKAGE_NAME:查新指定包安装的配置文件; rpm -qd PACKAGE_NAME:查新指定包安装的配置文件; rpm -q --scripts PACKAGE_NAME:查询指定包中包含的脚本 rpm -qf /PATH/TO/SOMEFILE:查新指定的文件是由哪个rpm包安装生成的 如果某rpm包尚未安装,我们需查询器说明信息、安装以后会生成的文件; rpm -qpi /PATH/TO/PACKAGE_FILE i软件包的信息 rpm -qpl /PATH/TO/PACKAGE_FILE l软件包的列表 rpm -qa <==已安装软件 rpm -q[licdR] <==已安装的软件 rpm -qf 存在于系统上的某个文件名 rpm -qp[licdR]未安装的某个文件名3、升级
rpm -Uvh /PATH/TO/NEW_PACKAGE_FILE:如果装有老版本的则升级,否则安装 rpm -Fvh /PATH/TO/NEW_PACKAGE_FILE:如果装有老版本的则升级,否则退出 --oldpackage:降级 4、卸载 rpm -e PACKAGE_NAME --nodeps 找出与pam有关的软件名称,并删除 rpm -qa | grep pam rpm -e pam 5、校验 rpm -V PACKAGE_NAME检查文件是不是被非法改变过的 6、重建数据库 rpm --rebuilddb:重建数据库,一定会重新建立; --initdb:初始化数据库,没有才建立,有就不用建立; 7、检验来源合法性,及软件包完整性; 加密类型: 对称:加密解密使用同一对密钥 公钥:一对儿密钥,公钥,私钥;公钥隐含于私钥中,可以提取出来并公开出去 单向: /etc/pki/rpm-gpg/ rpm -K /PATH/TO/PACKAGE_FILE dsa,gpg:验证来源合法性,也即验证签名:可以使用 --nosignature略过此项 sha1,md5:验证软件包完整性;可以使用--nodigest,略过此项 rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release:导入密钥文件 srpm RPM安装:SRPM.其提供的软件内容并没有被编译,它提供的是代码源,需要自己通过编译。 二进制格式: 源程序-->编译-->二进制格式 有些特性是编译选定的,如果编译时未选定此特性,将无法使用 rpm包会落后于源码包,甚至落后很多 定制:手动编译安装 编译环境,开发环境 开发库,开发工具, C,C++: gcc:GNU C Complier,C g++: make:项目管理工具, makefile:定义了make(gcc,g++)按何种次序去编译这些源程序 automake,-->makefile.in -->makefile autoconf,-->configure配置当前文件如何编译 make install 编译安装的三步骤: 前提:准备开发环境(编译环境) 安装"Development Tools"和"Development Libraries" #tar //解压缩 #cd //cd到当前目录 # ./configure脚本 --help --prefix=/path/to/somewhere指定安装路径 --sysconfdir=/PATH/TO/CONFFILE_PATH指定配置文件路径 功能:1、让用户选定编译特性;2、检查编译环境, #make #make install #tar xf tengine-1.4.2.tar.gz #cd tegnine-1.4.1 # ./configure --prefix=/usr/local/tengine --conf-path=/etc/tengine/tengine.conf #make #make install #/usr/local/tengine/sbin/ngix解决nginx没法直接运行,先编辑vim /etc/profile 然后加进去PATH=$PATH:/usr/local/tengine/sbin/ngix
然后重读 source /etc/profile或者重新登录 netstat -tnlp可以查看 其为web80端口 可以在浏览器打开相应地址打开相应的网页 编辑网页文件,可以cd /usr/local/tengine/ cd html/ ls 其为index.html 然后vim编辑 编译好软件包以后,如果想将其安装到非默认路径下 1、修改PATH环境变量,以能够识别此程序的二进制文件路径 修改/etc/profile文件 在/etc/profile.d/目录中建立一个以.sh为名称后缀的文件,在里面定义export PATH=$PATH:/path/to/somewhere 2、默认情况下,系统搜索库文件的路径/lib,/usr/lib;要增添额外搜寻路径: 在/etc/ld.so.conf.d/目录中创建以.conf为后缀名的文件,而后把要增添的路径直接写至此文件中; #ldconfig:通知系统重新搜寻库文件 -v:显示重新搜寻库的过程 3、头文件:#include 输出给系统 默认:/usr/include 增添头文件搜寻路径,可以使用连接进行; /usr/local/tengine/include/ /usr/include/ 两种方式: ln -s /usr/local/tengine/include/* /usr/include/或 ln -s /usr/local/tengine/include /usr/include/tengine 4、man文件路径:默认安装在--prefix指定的目录下的man目录;/usr/share/man 1、man -M /PATH/TO/MAN_DIR COMMAND 2、在/etc/man.config中添加一条MANPATH----------------------------------------------------yum rpm --> yum yum:rpm能力 解决rpm的依赖关系
yum仓库中的元数据文件: primary.xml.gz 所有RPM包的列表 依赖关系 每个RPM安装生成的文件列表 filelists.xml.gz 当前仓库内所有RPM包的所有文件列表; other.xml.gz 额外信息,RPM包的修改日志; repomd.xml 记录的是上面三个文件的时间戳和校验和; yum install zsh
comps*xml:RPM包分组信息
}
如何为yum定义repo文件
[Repo_ID] name=Description baseurl= ftp:// http:// enabled={1|0}允许1 不允许0 gpgcheck={1|0} gpgkey=路径 yum [options] [command] [package ...] -y:自动回答yes --installroot=/some/path:将软件安装在/some/path中而不是默认路径 --nogpgcheck不做检查 list:列表 支持glob all available:可用的,仓库中有尚未安装的 installed:已安装的 updates:可用的升级clean:清理缓存
packages headers metadata dbcache allrepolist:显示repo列表及其简要信息
all enabled:默认 disabled install:安装 yum install PACKAGE_NAME update:升级 update_to:升级为指定版本 yum list updates <==一定要是updates remove|erase:卸载 info:详细信息 provides| whatprovides:查看指定的文件或特性是由哪个包安装生成的 groupinfo grouplist groupinstall groupremove groupupdate 光盘创建yum /media/cdrom/{Sever,VT,Cluster,ClusterStorage}