Linux基础之软件包管理
2013-07-27 20:54
316 查看
一、介绍现在Linux上软件的安装方式有多种,有源码包编译,软件包管理器,软件包管理器前端工具,通用二进制编译等。源码包,优点是,灵活性和可定制性比较好,缺点是,技术要求高,操作复杂,虽然网上有编译安装软件的文档,也有很多人在使用,也都是默认或者简单配置后编译的。后来出了软件包管理工具RPM,RPM软件包管理软件方便多了但是它的依赖关系让人头疼,所以又推出出了YUM解决了让人头疼的依赖关系。在这里我给大家介绍一下我学到的几种Linux软件安装方式。
二、软件包的组成
1、二进制文件 所分布的目录:/bin,/sbin,/usr/bin,/usr/sbin,/usr/local/bin,/usr/local/sbin
2、库文件
所分布的目录:/lib,/usr/lib,/usr/local/lib
3、配置文件
所分布目录:/etc
4、帮助文件
手册:README INSTALL /usr/share/doc
man文档:/usr/share/man 定义man文档的配置文件定义在/etc/man.config
三、程序安装方式 1、通用二进制编译:别人编译好的,解压之后配置就能使用。 2、软件包管理器:使用rpm命令安装就可以使用了,但安装时要考虑到依赖关系。 3、软件包管理器前端工具:可以自动解决软件包的依赖关系。
4、源码包:源码包就是程序的源代码,必须通过编译器编译成二进制后才能使用,在编译时,软件所需的库文件一定要有,不然编译是不能成功的。
四、RPM软件包管理工具 RPM: RPM Package Manager 1、基本功能: 打包、安装、查询升级、校验、卸载、数据库管理(重建) 2、rpm软件包包含: 文件清单 文件存放路径
提供的功能说明 依赖关系
3、数据库:软件包信息,软件包校验 4、源程序命名方式: name-version.tar.{gz|bz2|xz}
版本号:major.minor.release 主版本号.次版本号.发行号 5、rpm包的命名方式: name-version-release.arch.rpm 发行号:用于标识rpm包的本身发行号,可还包含所适用的操纵做系统
例如:el6:RHEL6
arch:主机平台 例如:i386、x86_64、amd64、ppc、noarch不区分平台
注意:下载软件包时要注意区分操作系统和平台,不然可能会装不上的
6、rpm分包 主包:核心包 分包:支包 例如:bind bind-devel
7、常用软件包下载地址: http://mirrors,sohu.com http://rpmfind.net http://rpm.pbone.net 8、rpm包的验证机制: 来源的合法性、软件包的完整性 RrdHat系列的官方公钥: /etc/pki/rpm-gpg/
RPM-GPG-KEY-redhat-
可以使用rpm命令检测软件包的合法性 rpm -K 软件包名 rpm -checksig 软件包名 9、安装软件包:rpm -i /path/to/rpm_file1 rpm_file2...
-i|--install :安装一个新的软件包 Vendor:rpm软件包的制作者 Release:发行号 Build Date:软件包编译的时间 Install Date:软件包安装的时间 Build host:在那个系统上编译成rpm包的 License:软件包的许可证 Singnature:软件包签名信息 Packager:软件包制作者 URL:软件包的链接地址 Summary:简要说明信息 Description:详细说明信息 -v :显示安装过程,-vv显示更详细的安装过程
-h :以#显示安装进度。一个#号表示2%的进度;
-ivh :通常这几个选项组合使用
--nodeps :安装时忽略依赖关系
--test :测试安装
--replacepkgs :重新安装 10、卸载软件包:
rpm -e :卸载一个软件包
11、查询软件包:rpm -q
-q|--query
-qa :查询所有已安装的软件包
rpm -qa |grep 'pattern'
-qi :查询软件包的摘要信息
-ql :查询软件包生成的文件清单:
-qf :查询某文件由那个软件包安装生成:
-qc :查询包安装生成的配置文件
-qd :查询包安装生成的帮助文件
-q --scripts :查询软件包相关的脚本
preinstall :安装前脚本
postinstall :安装后脚本
preuninstall :卸载前脚本
postuninstall :卸载后脚本
12、查询尚未安装的包的相关信息 rpm -qpi /path/to/rpm_file
-qpi -qpl -qpd -c --scripts
13、升级:
-U:升级+安装
-F:升级
-Uvh
-Fvh
--force 强制安装
--nodeps 不检查依赖关系
注意:内核不应该升级,应该尽可能安装,允许多版本并存;
14、校验:rpm -V 包名
15、rpm数据库
rpm database:/var/lib/rpm
重建rpm数据库
rpm --initdb :新建,不覆盖原有的数据库
rpm --rebuilddb :覆盖,覆盖原有数据库(常用)
16、源码格式的rpm包:rpm-name.varsion.release.src.rpm
不能直接使用,需要打包之后才能安装使用
打包rpm的包制作过程是根据spec文件来完成的。
五、YUM软件包管理YUM:Yellow dog Updater, Modified rpm的前端工具 1、自动解决依赖关系 2、repository:仓库,yum源
判断是不是yum源 repodata/ :所在的父目录就是yum仓库,如果当前目录有repodata就说明这是一个yum仓库
RHEL6:的光盘镜像就是一个yum源
例如:把RHEL6的光盘挂载到/media/cdrom,那yum源配置文件里"baseurl=file:///media/cdrom"
3、客户端:
/etc/yum.conf //yum主配置文件 /etc/yum.repos.d/*.repo //yum配置文件 全局配置//对所有的yum仓库都生效 /etc/yum.conf
1)查询 yum list list {all|installed|available} :列出软件包 {所有|已安装|可安装} repolist {all|enabled|disabled} :列出yum源 {所有|开启的|未开启的}
info packag_name :查看软件包信息,也可以查询未安装的软件包的信息
groupinfo "group_name" :查询包组的信息
clean {packages|metadata|expire-cache|rpmdb|plugins|all} :清除yum缓存
makecache :生成yum缓存
2)安装 yum install
install -package_name
yum -y :自动回答为yes
reinstall package_name ... :重新安装软件包
groupinstall "package-group_name" :安装一个包组 安装开发组:编译软件包时基本就没有问题了,建议初学者在编译软件之前把这几个包组装上
--nogpgckeck :安装时不对软件包做验证
3)升级 yum update
check-update :查询可升级的包
update package_name :升级软件包
update-to :升级到指定的版本
groupupdate "group_name" :升级包组 4)卸载 yum remove
remove package_name ... :卸载一个软件包
groupremove "group_name" :卸载一个包组
我总结的软件包管理rpm和yum的知识就这些了,如有不足之处请多提宝贵意见,谢谢!
二、软件包的组成
1、二进制文件 所分布的目录:/bin,/sbin,/usr/bin,/usr/sbin,/usr/local/bin,/usr/local/sbin
2、库文件
所分布的目录:/lib,/usr/lib,/usr/local/lib
3、配置文件
所分布目录:/etc
4、帮助文件
手册:README INSTALL /usr/share/doc
man文档:/usr/share/man 定义man文档的配置文件定义在/etc/man.config
三、程序安装方式 1、通用二进制编译:别人编译好的,解压之后配置就能使用。 2、软件包管理器:使用rpm命令安装就可以使用了,但安装时要考虑到依赖关系。 3、软件包管理器前端工具:可以自动解决软件包的依赖关系。
4、源码包:源码包就是程序的源代码,必须通过编译器编译成二进制后才能使用,在编译时,软件所需的库文件一定要有,不然编译是不能成功的。
四、RPM软件包管理工具 RPM: RPM Package Manager 1、基本功能: 打包、安装、查询升级、校验、卸载、数据库管理(重建) 2、rpm软件包包含: 文件清单 文件存放路径
提供的功能说明 依赖关系
3、数据库:软件包信息,软件包校验 4、源程序命名方式: name-version.tar.{gz|bz2|xz}
版本号:major.minor.release 主版本号.次版本号.发行号 5、rpm包的命名方式: name-version-release.arch.rpm 发行号:用于标识rpm包的本身发行号,可还包含所适用的操纵做系统
例如:el6:RHEL6
arch:主机平台 例如:i386、x86_64、amd64、ppc、noarch不区分平台
注意:下载软件包时要注意区分操作系统和平台,不然可能会装不上的
6、rpm分包 主包:核心包 分包:支包 例如:bind bind-devel
7、常用软件包下载地址: http://mirrors,sohu.com http://rpmfind.net http://rpm.pbone.net 8、rpm包的验证机制: 来源的合法性、软件包的完整性 RrdHat系列的官方公钥: /etc/pki/rpm-gpg/
RPM-GPG-KEY-redhat-
可以使用rpm命令检测软件包的合法性 rpm -K 软件包名 rpm -checksig 软件包名 9、安装软件包:rpm -i /path/to/rpm_file1 rpm_file2...
-i|--install :安装一个新的软件包 Vendor:rpm软件包的制作者 Release:发行号 Build Date:软件包编译的时间 Install Date:软件包安装的时间 Build host:在那个系统上编译成rpm包的 License:软件包的许可证 Singnature:软件包签名信息 Packager:软件包制作者 URL:软件包的链接地址 Summary:简要说明信息 Description:详细说明信息 -v :显示安装过程,-vv显示更详细的安装过程
-h :以#显示安装进度。一个#号表示2%的进度;
-ivh :通常这几个选项组合使用
--nodeps :安装时忽略依赖关系
--test :测试安装
--replacepkgs :重新安装 10、卸载软件包:
rpm -e :卸载一个软件包
11、查询软件包:rpm -q
-q|--query
-qa :查询所有已安装的软件包
rpm -qa |grep 'pattern'
-qi :查询软件包的摘要信息
-ql :查询软件包生成的文件清单:
-qf :查询某文件由那个软件包安装生成:
-qc :查询包安装生成的配置文件
-qd :查询包安装生成的帮助文件
-q --scripts :查询软件包相关的脚本
preinstall :安装前脚本
postinstall :安装后脚本
preuninstall :卸载前脚本
postuninstall :卸载后脚本
12、查询尚未安装的包的相关信息 rpm -qpi /path/to/rpm_file
-qpi -qpl -qpd -c --scripts
13、升级:
-U:升级+安装
-F:升级
-Uvh
-Fvh
--force 强制安装
--nodeps 不检查依赖关系
注意:内核不应该升级,应该尽可能安装,允许多版本并存;
14、校验:rpm -V 包名
15、rpm数据库
rpm database:/var/lib/rpm
重建rpm数据库
rpm --initdb :新建,不覆盖原有的数据库
rpm --rebuilddb :覆盖,覆盖原有数据库(常用)
16、源码格式的rpm包:rpm-name.varsion.release.src.rpm
不能直接使用,需要打包之后才能安装使用
打包rpm的包制作过程是根据spec文件来完成的。
五、YUM软件包管理YUM:Yellow dog Updater, Modified rpm的前端工具 1、自动解决依赖关系 2、repository:仓库,yum源
判断是不是yum源 repodata/ :所在的父目录就是yum仓库,如果当前目录有repodata就说明这是一个yum仓库
RHEL6:的光盘镜像就是一个yum源
例如:把RHEL6的光盘挂载到/media/cdrom,那yum源配置文件里"baseurl=file:///media/cdrom"
3、客户端:
/etc/yum.conf //yum主配置文件 /etc/yum.repos.d/*.repo //yum配置文件 全局配置//对所有的yum仓库都生效 /etc/yum.conf
[main] //定义yum源名称 cachedir=/var/cache/yum //定义yum的缓存目录 keepcache=0 //保存缓存 debuglevel=2 //调试级别 logfile=/var/log/yum.log //日志文件所在目录 distroverpkg=redhat-release //验证rpm发行版所使用的密钥文件 tolerant=1 //忽略已安装的软件 exactarch=1 //必须做平台的精确匹配 obsoletes=1 //是否检查废弃的包 gpgcheck=1 //是否检查rpm包的签名,验证rpm包来源的合法性 plugins=1 //是否启用插件 # Note: yum-RHN-plugin doesn't honor this. metadata_expire=1h //缓存文件在本地缓存多长时间配置文件 /etc/yum.repos.d/*.repo
[repo] name=Primary Yum repository baseurl=http://mirror.sohu.com/fedora-epel/6/i386/ //yum源网址 enabled={0|1} //{不开启|开启} gpgcheck={0|1} //{不检查|检查签名} gpgkey=file:///etc/pki/RPM-GPG-KEY-redhat-base //指定验证用的密钥文件4、 yum命令
1)查询 yum list list {all|installed|available} :列出软件包 {所有|已安装|可安装} repolist {all|enabled|disabled} :列出yum源 {所有|开启的|未开启的}
info packag_name :查看软件包信息,也可以查询未安装的软件包的信息
groupinfo "group_name" :查询包组的信息
clean {packages|metadata|expire-cache|rpmdb|plugins|all} :清除yum缓存
makecache :生成yum缓存
2)安装 yum install
install -package_name
yum -y :自动回答为yes
reinstall package_name ... :重新安装软件包
groupinstall "package-group_name" :安装一个包组 安装开发组:编译软件包时基本就没有问题了,建议初学者在编译软件之前把这几个包组装上
RHEL6,CentOS6: "Development tools"、"Server Platform Development" "Desktop Platform Development" RHEL5, CentOS5: "Development tools"、"Development Libraries"localinstall :安装本地软件包;rehl6上直接用yum install就可以了
--nogpgckeck :安装时不对软件包做验证
3)升级 yum update
check-update :查询可升级的包
update package_name :升级软件包
update-to :升级到指定的版本
groupupdate "group_name" :升级包组 4)卸载 yum remove
remove package_name ... :卸载一个软件包
groupremove "group_name" :卸载一个包组
我总结的软件包管理rpm和yum的知识就这些了,如有不足之处请多提宝贵意见,谢谢!
相关文章推荐
- Linux基础之软件管理RPM
- Linux 基础命令(七)—— 软件包的管理
- linux初学(二十一)之linux软件管理基础之YUM软件管理
- Linux基础-软件包的管理
- Linux基础管理——软件包管理:rpm,yum高级使用方法(史上最全,没有之一)
- Linux基础--软件包管理
- Linux基础之软件管理Yum
- Linux系统基础-管理之软件包管理【附http源码安装实例】 推荐
- Linux 基础笔记软件包管理
- linux基础简介 系统安装 常用命令 系统命令 软件管理 搭建Java服务器并进行远程管理
- linux应用基础与实训 软件管理网络管理
- linux高級管理RAID原理基础和软件RAID的实现
- Linux 基础教程 34-软件包管理-RPM
- Linux基础之软件管理 编译安装
- linux基础(11)--软件包管理--RHEL6.5
- linux初学(二十)之linux软件管理基础之RPM软件包管理
- linux入门基础——linux软件管理RPM
- linux基础-第十五单元 软件包的管理
- linux入门基础——linux软件管理RPM
- Linux入门-9 软件管理基础(CentOS)