侧边栏壁纸
博主头像
伯淳的个人博客博主等级

行动起来,活在当下

  • 累计撰写 35 篇文章
  • 累计创建 5 个标签
  • 累计收到 0 条评论

目 录CONTENT

文章目录

软件安装RPM、SRPM与YUM

Administrator
2023-11-07 / 0 评论 / 1 点赞 / 21 阅读 / 11164 字

1.软件管理器

发行版代表

软件管理机制

使用命令

在线升级功能(命令)

Red Hat/Fedora

RPM

rpm, rpmbuild

YUM (yum)

Debian/Ubuntu

DPKG

dpkg

APT (apt-get)

文件格式

文件名格式

直接安装与否

内含程序类型

可否修改参数并编译

RPM

xxx.rpm

已编译

不可

SRPM

xxx.src.rpm

不可

未编译的源代码

RPM最大的问题为软件之间的依赖性问题,这个问题可通过 YUM在线升级 解决。

2.RPM软件管理程序:rpm

因为yum就可以直接用来进行安装的操作,所以基本上rpm这个命令一般用来查询与检验。

2.1RPM安装

rpm -ivh package_name或网络上某个文件地址

选项与参数:

-i:install安装的意思。

-v:查看更详细的安装的信息。

-h:显示安装进度。

--nodeps:强制安装,但安装后可能无法使用

更多参数man rpm 查询。

2.2RPM升级与更新

-Uvh

若软件没安装,直接安装;若安装,则更新

-Fvh

若软件没安装,不安装;只有安装的软件才会被升级

2.3RPM查询

rpm -qa <==已安装软件

rpm -q[licdR] 已安装的软件名称 <==已安装软件

rpm -qf 存在与系统上面的某个文件名 <==已安装软件

rpm -qp[licdR] 未安装的某个文件名称 <==查看RPM文件

选项与参数:

-q:查询后面接的软件是否安装。

-qa:列出在本机安装的所有软件名称。

-qi:列出该软件的详细信息。

-ql:列出该软件的所有文件与目录所在的完整文件名。

-qc:列出该软件的所有配置文件。

-qd:列出该软件的所有说明文件。

-qR:列出该软件的依赖软件所含的文件。

-qf:后面接文件名,找出该文件属于哪一个已安装的软件。

-q scripts:列出是否有安装后需要执行的脚本文件。

-qp[licdR]:找出某个RPM文件内信息,而非已安装的软件。

2.4RPM验证与数字签名

rpm -Va

rpm -V 已安装的软件名称

rpm -Vp 某个rpm文件的文件名

rpm -Vf 在系统上面的某个文件

选项与参数:

-V:若该软件的文件被修改过才显示。

-Va:列出目前系统上面所有可能被修改过的文件。

-Vp:后面跟文件名,列出该软件内可能被修改过的文件。

-Vf:显示某个文件是否被修改过。

2.5RPM卸载与重建数据库

rpm -e 软件名称

注意:卸载的过程一定要由最上层往下解除,以rp-pppoe为例,这个软件主要是根据ppp这个软件来安装的,所以卸载ppp的时候,就必须先卸载rp-pppoe才行,否则会发生结构上的问题。

由于RPM文件常常会安装、删除、升级等,某些操作或许可能会导致RPM数据库内文件的损坏,可通过重建数据库来解决。

rpm --rebuilddb

3.YUM在线升级功能

3.1利用YUM进行查询、安装、升级与删除功能

查询功能:

yum [option] [查询工作选项] [相关参数]

选项与参数:

[option]:

-y:需要使用者输入时,自动提供yes的回应。

--installroot=/some/path:将软件安装在/some/path而非默认路径

[查询工作选项]:

search:查找某个软件名称或是描述(description)的重要关键字。

list:列出目前yum管理的所有软件与版本。

info:同上。

provides:从文件去查找软件。

安装/升级功能:

yum [option] [安装与升级的工作选项] [相关参数]

选项与相关参数:

install:后面接要安装的软件

update:后面接要升级的软件,若要整个系统都升级,直接update即可。

删除功能:

yum remove 软件

3.2YUM的配置文件

[root@study ~]# vim /etc/yum.repos.d/CentOS-Base.repo
[base]
name=CentOS-$releasever - Base
mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=os&infra=$infra
#baseurl=http://mirror.centos.org/centos/$releasever/os/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7

[base]:代表软件源的名字,可以随便取。

name:简单说明软件源的意义。

mirrorlist=:列出软件源可以使用的镜像站,不用可以注释。

baseurl=:这个最重要,是软件源的实际地址,可修改更改软件源的地址。

enable=1:让这个软件源被启用,不想启动设为0。

gpgcheck=1:1是查看RPM文件内的数字签名。

gpgkey=:数字签名的公匙文件所在位置,使用默认值即可。

修改软件源产生的问题与解决方法:

修改了网址却没有修改软件源的名称(中括号内的文字),可能会造成本机的列表与YUM服务器的列表不同步,此时就会出现无法更新的问题。

通过清楚本机上的旧数据处理:

yum clean [packages|headers|all]

选项与参数:

packages:将已下载的安装文件删除。

headers:将下载的安装文件头删除。

all:将所有软件源数据都删除。

3.3YUM的软件群组功能

yum [群组功能] [软件群组]

选项与参数:

grouplist:列出所有可用的软件群组。

groupinfo:后面接群组,了解该群组内的所有文件名。

groupinstall:安装一整组的软件群组。

groupremove:删除某个软件群组。

如果想要groupinstall默认安装好所有的optional软件,可修改配置文件如下:

[root@study ~]# vim /etc/yum.conf
.....(前面省略).....
distroverpkg=centos-release   # 找到这一行,底下新增一行!
group_package_types=default, mandatory, optional
.....(底下省略).....

3.4EPEL

在Fedora基金会里发展了一个扩展软件计划( extra Packages for Enterprise Linux,EPEL),这个计划主要针对Red Hat Enterprise Linux来开发。

例:

我的系统想通过Centos 7的EPEL计划来安装netcdf以及R这两个软件:

首先,针对epel进行yum的配置文件处理:

[root@study ~]# vim /etc/yum.repos.d/epel.repo
[epel]
name = epel packages
baseurl = https://dl.fedoraproject.org/pub/epel/7/x86_64/
gpgcheck = 0
enabled = 0

接下来,使用这个软件源安装:

[root@study ~]# yum --enablerepo=epel install netcdf R

3.5使用本机的安装光盘

将光盘挂载到某个目录,这里是/mnt目录:

[root@study ~]# vim /etc/yum.repos.d/cdrom.repo
[mycdrom]
name = mycdrom 
baseurl = file:///mnt
gpgcheck = 0
enabled = 0

[root@study ~]# yum --enablerepo=mycdrom install software_name

※file://是一个协议标识符,它告诉yum这是一个文件系统上的路径,而不是通过http或ftp等网络协议访问的路径。

4.SRPM的使用:rpmbuild

rpmbuild [option] SRPM文件

[option]:

--rebuild:这个选项会将后面的SRPM进行编译与打包,最后会产生RPM文件,但是产生的RPM文件没有安装到系统上。

--recompile:不仅编译与打包,还安装。

1

评论区