在linux系统中,软件包的管理是常见操作。让我们一起探讨linux系统中软件包管理的不同方式。

一、RPM软件包
RPM的介绍
在之前的课程中,我们提到过源码包安装需要解决系统环境、权限等问题,这些对初学者来说可能非常棘手。因此,Linux厂商推出了一种类似Windows系统中的安装方式:开发者在已知的系统中预先编译好软件包,使用者可以直接下载并进行安装、升级和卸载等操作。在Linux中,能够提供这些功能的软件有两种:RPM和dpkg,而在CentOS中使用的是RPM。
RPM最早由Red Hat开发,由于其便捷性,许多发行版也采用RPM来管理软件包。RPM的全称是Red Hat Package Manager,其最大特点是将需要安装的软件预先编译并打包,包内包含用于记录软件依赖关系的相关数据。当用户安装时,RPM会优先检查这些数据,如果系统满足要求则安装软件包,否则不能安装。安装完成后,软件包相关信息会被记录到RPM自己的数据库中,方便查询和卸载。因此,RPM的优点是安装、卸载和查询方便,但缺点是只能在指定的操作系统上使用,不同厂商的RPM包甚至同一厂商不同版本操作系统的RPM包都不通用。
RPM包的命名
RPM包的命名格式如下:
dhcp-server-4.3.6-30.el8.x86_64.rpm 软件名称 版本 编译次数 适用的系统 适用的平台 后缀名
- 软件名:软件包的名称。
- 版本:每次更新版本号都会改变,用来帮助用户判断软件包新旧。
- 编译次数:也是帮助用户判断软件包新旧。
- 适用的系统:在哪个系统上可以安装,CentOS和RHEL的多数软件包是通用的。
- 适用的平台:指的是硬件平台,比如32位CPU无法安装64位的软件包。
RPM的使用
RPM包的相关文件通常会放在对应的目录中:
- 配置文件:
/etc - 执行文件:
/usr/bin - 链接库文件:
/usr/lib - 帮助与说明文档:
/usr/share/man和/usr/share/doc
安装:
[root@zutuanxue Packages]# rpm -ivh dhcp-server-4.3.6-30.el8.x86_64.rpm -i 安装 -v 显示详细信息 -h 显示安装进度 -e 卸载 -U 升级,如果系统中有低版本的就会升级,如果系统没有安装相应的包,则安装 -F 有条件的升级,会检测用户指定的软件包是否已安装到Linux中 --nodeps 忽略软件包之间的依赖关系 --replacefiles 覆盖文件 --replacepkgs 修复 --force 强制 --test 测试 -q 查询指定的软件包是否安装 -qi 查看指定的软件包的信息,包括开发商,版本,说明 -ql 查看指定软件包中所包含的文件列表 -qc 查看指定软件包的配置文件 -qa 查看本机安装的所有包 -qf 查看一个文件归属于哪个已安装的软件包
二、YUM软件仓库
YUM的介绍
YUM(Yellow dog Updater, Modified)是一个基于RPM却更胜于RPM的管理工具,让你可以更轻松地管理Red Hat Enterprise Linux系统中的软件。你可以使用YUM来安装或卸载软件,也可以利用YUM来更新你的系统,更可以利用YUM来搜索一个尚未安装的软件。不管是安装、更新或者删除,YUM都会自动帮你解决软件间的依赖性问题。通过YUM会比单纯使用RPM来得更加方便。
乐彼多用户商城系统,采用ASP.NET分层技术和AJAX技术,运营于高速稳定的微软.NET+MSSQL 2005平台;完全具备搭建超大型网络购物多用户网上商城的整体技术框架和应用层次LBMall 秉承乐彼软件优秀品质,后台人性化设计,管理窗口识别客户端分辨率自动调整,独立配置的菜单操作锁,使管理操作简单便捷。待办事项1、新订单、支付、付款、短信提醒2、每5分钟自动读取3、新事项声音提醒 店铺管理1
YUM包含以下几项组件:
- YUM下载源:如果将所有RPM文件放在某一个目录中,这个目录就可称为“YUM下载源(YUM Repository)”。你也可以通过HTTP、FTP等方式分享YUM下载源给其他计算机使用;当然,你也可以直接使用别人建好的YUM下载源来取得需安装的软件。
-
YUM工具:YUM提供了一个名为
yum的命令,你可以使用yum来使用YUM提供的众多功能。 - YUM插件:YUM还允许第三方厂商(3rd Party)开发YUM的插件(Plug-in),让用户可以任意扩充YUM的功能,比如有的插件可以帮助选择最快的YUM源。
-
YUM缓存:YUM运行时,会从YUM下载源获得软件信息与文件,并且暂存于本机的硬盘上。这个暂存的目录,称为“YUM缓存(YUM cache)”。缓存目录为
/var/cache/yum。
YUM的使用
由于YUM有下载源这个东西,所以我们在使用YUM之前需要告诉它去哪里获取这些软件包,也就是说需要先配置一个YUM源。
[root@zutuanxue ~]# cd /etc/yum.repos.d/ [root@zutuanxue yum.repos.d]# ls CentOS-AppStream.repo CentOS-CR.repo CentOS-fasttrack.repo CentOS-Sources.repo CentOS-Base.repo CentOS-Debuginfo.repo CentOS-Media.repo CentOS-Vault.repo CentOS-centosplus.repo CentOS-Extras.repo CentOS-PowerTools.repo在CentOS8中,YUM的下载源配置文件统一都放到
/etc/yum.repos.d/目录下。在这个目录中有些默认的下载源,但我不想使用这些自带的下载源,我想配置一个自己的下载源,让YUM使用光盘镜像里的软件包。为了避免干扰,我们把这些自带的下载源都放到一个目录里:[root@zutuanxue yum.repos.d]# mkdir repos [root@zutuanxue yum.repos.d]# ls CentOS-AppStream.repo CentOS-CR.repo CentOS-fasttrack.repo CentOS-Sources.repo CentOS-Base.repo CentOS-Debuginfo.repo CentOS-Media.repo CentOS-Vault.repo CentOS-centosplus.repo CentOS-Extras.repo CentOS-PowerTools.repo repos [root@zutuanxue yum.repos.d]# mv *.repo repos [root@zutuanxue yum.repos.d]# clear [root@zutuanxue yum.repos.d]# ls repos
然后使用vim命令建立自己的下载源配置文件:
[root@zutuanxue repos]# vim server.repo [server-BaseOS] name=server-BaseOS enabled=1 gpgcheck=0 baseurl=file:///mnt/BaseOS
[server-AppStream] name=server-AppStream enabled=1 gpgcheck=0 baseurl=file:///mnt/AppStream
[root@zutuanxue ~]# mount /dev/cdrom /mnt/ 将光盘挂载到指定位置
由于CentOS8的软件包存放在光盘根目录的BaseOS和AppStream目录中,所以为了保证需要的软件包能正确安装,我们配置了两个YUM源。这两部分内容你可以放到一个文件里,也可以分别放在两个文件中。
通过以上步骤,我们可以有效地管理Linux系统中的软件包,确保系统的稳定性和功能的扩展性。









