软件包管理有一般有3种机制:源代码方式、RPM、YUM
软件包的组成格式与存放路径:
1、二进制程序
主要存放的路径:/bin, /sbin, /usr/bin, /usr/sbin, /usr/local/bin, /usr/local/sbin, /usr/local/APP/{bin,sbin}
2、库文件(开发库、运行库)
主要存放的路径:/lib64, /usr/lib64, /usr/local/lib64, /usr/local/APP/lib
3、配置文件
主要存放的路径:/etc, /usr/local/APP/etc或conf目录
4、帮助文件
主要存放的路径:/usr/share/man, /usr/local/share/man, /usr/local/APP/man
源码方式:源代码打包成tar.gz的归档压缩文件直接使用,编译成可执行的二进制文件才能运行使用。操作复杂、编译时间长、极易出现错误。由于源代码方式安装软件比较麻烦,因此出
现了许多代替源码方式安装的软件管理机制:RPM、YUM,使用简单、单一软件包格式发布、可升级、追踪依赖关系、保存软件基本信息、软件验证功能、支持多平台。
RPM(redhat Package Manager)命名格式
RPM包:zip-3.0-10.el7.x86_64.rpm
zip:软件名称
3.0-10:版本号(3.0主版本号,10次版本号)
el7.x86_64:rpm包的运行平台的操作系统版本
RPM包管理:校验、安装、升级、卸载
RPM包校验:来源的合法性、软件包的完整性。必须导入了官方提供的公钥,才可以验证。Linux系统自带的公钥一般放在/etc/pki/rpm-gpg/下,后缀为release的就是公钥,没有这个公钥
,那个后缀为系统名加版本号的就是公钥了
导入密钥:rpm --import /PATH/TO/KEY_FILE
校验:rpm -K /PATH/TO/RPM_FILE
RPM校验命令
语法:RPM {-V|--verify} [select-options] [verify-options]
常见参数选项
S:文件大小
5:文件的md5校验值
L:链接文件
T:文件创建时间
D:设备文件
U:文件的用户
G:文件的用户组
M:文件的权限
RPM包安装命令
语法:rpm –i[v|h] [--excludedocs |prefix |test |replace[pkgs |files] |nodeps] FILE...
i:安装
v:显示详细信息
h:hash是进度信息
常用参数选项
--nodeps:忽略依赖关系安装
--replacepkgs:重装程序包
RPM包升级命令
语法:rpm {-U|--upgrade} [install-options] PACKAGE_FILE ...
rpm {-F|--freshen} [install-options] PACKAGE_FILE ...
-U:升级
-h:解压打印#
-v:显示详细信息
常用升级命令组合
-Uvh: 升级包(有旧版程序包,则升级;如没有,则安装)
-Fvh: 升级(安装包存在旧版程序包,则升级;如没有,不安装)
--nodeps:忽略依赖关系
--oldpackage:降级
--force:强制
RPM包卸载
语法:rpm {-e|--erase} [--nodeps] [--noscripts] [--notriggers] [--test] PACKAGE_NAME ...
常见参数选项
-e:删除包
RPM包查询
语法:rpm {-q|--query} [select-options] [query-options]
常见组合参数
-qa: 查询本机已经安装的所有程序包;
-qf /PATH/TO/SOMEFILE: 查询此处的文件由哪个程序包安装生成;
-qc: 查询指定程序包安装生成的配置文件
-qd: 查询指定的程序包安装生成的文档
-qi: 查询指定的程序包的相关信息
-ql: 查询程序包安装生成的所有文件的列表
-q --scripts:查询程序包相关的脚本:
preinstall: 安装前脚本
postinstall:安装后脚本
preuninstall: 卸载前脚本
postuninstall: 卸载后脚本
-p: 查询针对是未安装的程序包文件
练习:
1、挂载cdrom至/media/cdrom,用rpm命令安装nmap工具,注意查看参数
2、安装tomcat-lib-7.0.54-1.el7.noarch.rpm,如果有依赖包无法安装可忽略或者使用强制安装,然后卸载,并查询安装情况
3、查看当前本机所有已安装程序包,查看nmap安装包生成哪些文件列表、生成配置文件、包相关信息
yum命令软件包管理器,交互和自动化地从指定的服务器自动下载RPM包并且安装,自动处理依赖性关系。
语法:yum[选项][参数]
常见参数选项
-h:显示帮助信息
-y:对所有的提问都回答“yes”
-v:详细模式
install:安装软件包
update:更新软件包
check-update:检查是否有可更新软件包
remove:删除软件包
list:显示软件包的信息
search:检查软件包的信息
info:显示指定软件包的描述信息和概要信息
clean:清理yum过期的缓存
resolvedep:显示rpm软件包的依赖关系
reinstall:重新安装
常见管理包组信息
grouplist:显示包组信息
groupinfo "GRP_NAME" :显示包组描述信息和概要信息
groupinstall "GRP_NAME" :安装包组
groupremove "GRP_NAME :卸载包组
常见管理包组信息
repolist [all|enabled|disabled] :显示仓库信息
repoinfo [all|enabled|disabled] :显示仓库描述或概要信息
创建本地仓库:
yum install createrepo
createrepo /PATH/TO/RPMFILES/
使用光盘当做本地仓库方法:
1、挂载光盘至某目录
2、定义仓库,使用file:///指明其访问路径;
指定的服务器自动下载RPM包,一般有以下文件服务器
ftp服务:ftp://hostname/PATH/TO/REPO
http服务:http://hostname/PATH/TO/REPO
本地文件路径:file:///PATH/TO/REPO
yum程序的配置文件:
/etc/yum.conf:全局配置
/etc/yum.repos.d/*.repo:一个文件通常用于一个或一组功能相近或相关的仓库
简要说明yum仓库各项参数
[fedora] #软件源的名称
name=Fedora $releasever - $basearch #仓库的名称,$releasever变量定义了发行版本,$basearch变量定义了系统的架构(i386、x86_64……)
failovermethod=priority #priority是默认值,列出的baseurl中顺序镜像服器地址,roundrobin表示在列出的服务器中随机选择
#mirrorlist=http://mirrors.fedoraproject.org/mirrorlist?repo=fedora-$releasever&arch=$basearch #指定一个镜像服务器的地址列表,通常是开启的,本例中加了注释符号禁用了。选择访问速度较快的镜像服务器地址复制并粘贴到repo文件中,格式如下baseurl所示:
baseurl=
ftp://ftp.sfc.wide.ad.jp/pub/Linux/Fedora/releases/10/Everything/i386/os
http://ftp.chg.ru/pub/Linux/fedora/linux/releases/10/Everything/i386/os
http://ftp.yz.yamagata-u.ac.jp/pub/linux/fedora/linux/releases/10/Everything/i386/os
http://mirror.nus.edu.sg/fedora/releases/10/Everything/i386/os
http://mirror.yandex.ru/fedora/linux/releases/10/Everything/i386/os
http://ftp.twaren.net/Linux/Fedora/linux/releases/10/Everything/i386/os
http://ftp.itu.edu.tr/Mirror/Fedora/linux/releases/10/Everything/i386/os
enabled=1 #源是启用的,0为禁用
gpgcheck=1 #进行gpg的校验
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-fedora-$basearch #定义用于校验的gpg密钥
练习:
1、备份CentOS-Base.repo为CentOS-Base.repo.backup,定义一个新的仓库Centos-new.repo,已163为yum仓库并且校验
2、挂载光盘到/media/cdrom,并且作为本地仓库名为Local.repo,不校验
3、yum安装nmap工具,并且检查是否有更新包,显示依赖包,如已安装过重新安装
4、安装打印包组,查看包组信息,卸载包组