RPM是 RedHat Package Manager(RedHat软件包管理工具)的缩写。
RPM 包管理系统:功能强大,安装、升级、査询和卸载非常简单方便,在Fedora 、Redhat、Mandriva、SuSE、YellowDog等主流发行版本,以及在这些版本基础上二次开发出来的发行版采用。
RPM是以一种数据库记录的方式将所需要的软件安装到Linux主机的一套管理程序,最大的特点是将要安装的软件先编译并打包,通过包装好的软件中默认的数据库记录,记录这个软件在安装的时候需要的依赖属性模块,在用户的Linux主机安装时,RPM会先根据软件里的记录数据,查询Linux主机的依赖属性软件是否满足,若满足则予以安装,不满足则不安装。安装的时候将该软件的信息全部写入RPM的数据库中以便将来的查询、验证与卸载。
RPM软件的安装、删除、更新只有root权限才能使用;对于查询功能任何用户都可以操作;如果普通用户拥有安装目录的权限,也可以进行安装。
RPM在查询的时候,查询的地方是在/var/lib/rpm目录下的数据库文件。
# 根据命令后面所带参数可以分为四种:
# 一、命令后不带参数
# rpm -qa :查询所有已经安装的软件名称
# 二、带安装的软件名称
# -q:查询后面接的软件是否安装,已安装有信息输出,否则没有
# rpm -qi :列出该软件的详细信息(information),包含开发商、版本与说明等
# rpm -ql :列出该软件所有的文件与目录(list)
# rpm -qc :列出该软件的所有配置文件
# rpm -qd :列出该软件的所有帮助文件(与man有关的文件)
# rpm -qR :列出与该软件有关的依赖软件所含的文件(Required)
# 三、带一个存在于系统的文件名称
# rpm -qf :找出该文件属于哪个已安装的软件
# 四、带一个 .rpm 文件
# rpm -qp[licdR] :-qp后面接的所有参数以上面的说明为准,目的在于找出某个rpm文件内的信息,而非已
安装的软件信息
# rpm -ivh package_name.rpm
参数:
-i:install的意思
-v:查看更详细的安装信息页面
-h:以安装信息列显示安装进度
# rpm -e firefox-60.2.2-1.el7.centos.x86_64 # 卸载firefox浏览器
# rpm –-rebuilddb # 重建数据库
了解:
--nodeps :忽略依赖关系,强制卸载
Yum(全称为 Yellow dog Updater, Modified
)是一个在Fedora和RedHat以及CentOS中的Shell前端软件包管理器。
基于rpm包管理,能够从指定的服务器(yum源)自动下载RPM包并且安装,可以自动处理依赖性关系,并且一次安装所有依赖的软件包,无须繁琐地一次次下载、安装。
1.需要有一个软件仓库
2.需要告诉yum工具到哪个仓库去找
BaseOS 储存 旨在提供一套核心的底层操作系统的功能,为基础软件安装库
AppStream 储存库中包括额外的用户空间应用程序、运行时语言和数据库,以支持不同工作负载和用例。AppStream 中内容有两种格式——RPM格式 和 称之为模块的RPM格式拓展
步骤一:挂载镜像到本地系统
# mount -o ro /dev/sr0 /mnt
列出BaseOS 和 AppStream 的内容如下说明仓库已准备好
[root@hsforpyp ~]# ls /mnt/BaseOS/
Packages repodata
[root@hsforpyp ~]# ls /mnt/AppStream/
Packages repodata
步骤二:修改配置文件指定本地储存库
[root@hsforpyp mnt]# vim /etc/yum.repos.d/local.repo
[root@hsforpyp mnt]# cat /etc/yum.repos.d/local.repo
[BaseOS]
name=LOCAL BaseOS YUM
enabled=1
baseurl=file:///mnt/BaseOS/
gpgcheck=0
[AppStream]
name=LOCAL APPSTREAM YUM
enabled=1
baseurl=file:///mnt/AppStream
gpgcheck=0
参数说明:
[LocalRepo] # 存储库的名称
name # 存储库内容说明
baseurl # yum 源地址
enabled # 存储库是否生效
gpgcheck # 是否进行gpg校验,gpgcheck=0,那么gpgkey可以不写
# yum search 关键词
# yum -y install 关键词
选项说明:
-y:yes缩写,选择自动确认,不提示。
# yum -y remove 关键词
选项说明:
-y:yes缩写,选择自动确认,不提示。
# yum -y update 关键词
选项说明:
-y:yes缩写,选择自动确认,不提示。
dnf是新一代的rpm软件包管理器。首次出现在 Fedora 18 这个发行版中。它取代了yum,正式成为 Fedora 22 的包管理器。
dnf包管理器克服了yum包管理器的一些瓶颈,提升了包括用户体验,内存占用,依赖分析,运行速度等多方面的内容。dnf使用 RPM, libsolv 和 hawkey 库进行包管理操作。尽管它没有预装在 CentOS 和 RHEL 7 中,但你可以在使用yum的同时使用dnf 。
[root@hsforpyp bin]# ll /usr/bin |grep dnf
lrwxrwxrwx. 1 root root 5 Feb 14 2019 dnf -> dnf-3
-rwxr-xr-x. 1 root root 1954 Feb 14 2019 dnf-3
lrwxrwxrwx. 1 root root 5 Feb 14 2019 yum -> dnf-3
当然dnf也不是完美的,例如:在dnf中没有 –skip-broken 命令,并且没有替代命令供选择。 没有判断哪个包提供了指定依赖的 resolvedep 命令,没有用来列出某个软件依赖包的 deplist 命令等等。
语法格式
# dnf [参数]
选项 | 意义 |
---|---|
repolist | 显示系统中可用的 DNF 软件库 |
list | 列出用户系统上的所有来自软件库的可用软件包和所有已经安装在系统上的软件包 |
search <包名> | 搜索软件库中的软件包 |
provides <路径> | 查找某一文件的提供者 |
info <包名> | 查看软件包详情 |
install <包名> | 安装软件包 |
update <包名> | 升级软件包 |
check-update | 检查系统软件包的更新 |
update | 升级所有系统软件包 |
remove | 删除软件包 |
autoremove | 删除无用孤立的软件包 |
clean all | 删除缓存的无用软件包 |
help <命令名> | 获取有关某条命令的使用帮助 |
help | 查看所有的dnf命令及其用途 |
history | 查看dnf命令的执行历史 |
grouplist | 查看所有的软件包组 |
groupinstall <软件包组名称> | 安装一个软件包组 |
groupupdate <软件包组名称> | 升级一个软件包组中的软件包 |
groupremove <软件包组名称> | 删除一个软件包组 |
distro-sync | 更新软件包到最新的稳定发行版 |
reinstall <包名> | 重新安装特定软件包 |
downgrade <包名> | 回滚某个特定软件的版本 |
–version | 查看 DNF 包管理器版本 |
编译
,变成二进制的软件包
后,才可安装使用软件包名.tar.gz
软件包名.tar.bz2
软件包名.tar.xz
软件包名.zip
什么是二进制源码包?有什么特点?
rpmbuild
工具重建成真正的rpm
包或者重建成源码包才可安装使用系统平台 | 包类型 | 工具 | 在线安装 |
---|---|---|---|
Redhat/CentOS/Fedora/SUSE | rpm | rpm,rpmbuild | yum |
Ubuntu/Debian | deb | dbkg | apt |
软件包类型 | 是否编译 | 安装难易程度 | 可定制性 |
---|---|---|---|
二进制包 | 否 | 易 | 差 |
源码包 | 是 | 难(配置->编译->安装) | 好 |
官网获取,一般都是*.tar.gz
./configure
(软件安装路径,不配置使用默认路径)make
(把软件的源码包做成类似rpm的可以直接安装的软件)make install
(把编译好的程序安装到Linux系统中)步骤一:对软件进行解压缩
# tar -zxf cmatrix-1.2a.tar.gz
步骤二:进入cmatrix文件夹,对软件进行配置
# cd cmatrix-1.2a/
# ./configure
步骤三:编译软件,使用make
命令
# make
常见错误:
cmatrix.c:37:20: fatal error:curses.h:No such file or directory
出现以上问题的原因在于系统没有找到ncurses-devel软件包
解决方案:
# yum install ncurses-devel -y
步骤四:安装软件make install
# make install
测试代码雨:
# cmatrix
# cd 软件源码包
# ./configure [选项]
# ./configure --help
--prefix=... Directories to put files in /usr/local 软件家目录
--bindir=... $prefix/bin 命令的目录
--etcdir=... $prefix/etc 配置文件的目录 httpd => /etc/httpd/httpd.conf
--mandir=... $prefix/share/man man 文档路径
--locale=... $prefix/share/locale 语言编码
...