【Linux】包管理①(rpm)

包裹是指包装物或容器

在使用软件时所需的程序库、配置文件、文档等的组合被称为软件包。

管理依赖关系和冲突关系以及获取包等机制被称为包管理。

依存关系指的是为运行包A,需要包B的关系。就像准备纸张(包A)来画画一样,似乎还需要笔(包B)。

竞合关系是指在安装一个包含其他已安装文件的包时,已经安装的文件与之冲突的关系值。

在进行此软件包管理时,需要使用rpm命令和yum命令。不过我个人不太常使用rpm命令。准备软件包有点麻烦。。我只用过rpm -qa命令来生成软件包列表,并且只在某个地方转录过。

rpm 命令

这是一个可以管理rpm包的命令。
由于有yum和dnf,我很少使用rpm命令。(如果需要详细指定版本,可能会使用它,但是…)

由于我已经在努力学习,所以我想进行一次简单的操作验证。

试一试安装httpd。
看起来可以使用-i选项进行安装。此外,看起来可以使用-v来查看详细信息,并使用-h来确认进度。

现在,就开始执行吧。
执行之后,被告知文件不存在。

[root@localhost ~]# rpm -ivh httpd-2.4.6-98.el7.centos.7.x86_64.rpm
エラー: httpd-2.4.6-98.el7.centos.7.x86_64.rpm のオープンに失敗: そのようなファイルやディレクトリはありません

是的,这个问题的原因很简单,就是没有在本地准备好软件包。
我会准备这个软件包。虽然可以从Web上获取软件包,但是因为有很多依赖关系很繁杂,所以我们会使用yumdownloader。

使用下面的命令,您可以安装yum-utils软件包并进行使用。

[root@localhost ~]# yum install yum-utils

我想要获取软件包。
通过使用–resolve选项,它会帮助考虑依赖关系并下载。
已经下载了httpd和httpd-tools。

[root@localhost ~]# yumdownloader --resolve httpd
[root@localhost ~]# ll
合計 2880
-rw-r--r-- 1 root root 2849180  4月  6 02:37 httpd-2.4.6-98.el7.centos.7.x86_64.rpm
-rw-r--r-- 1 root root   96652  4月  6 02:37 httpd-tools-2.4.6-98.el7.centos.7.x86_64.rpm

安装包获取后,我在httpd上执行安装时遇到了缺少依赖的错误。
看起来需要httpd-tools-2.4.6-98.el7.centos.7。所以,我会先安装httpd-tools,然后再安装httpd。

[root@localhost ~]# rpm -i httpd-2.4.6-98.el7.centos.7.x86_64.rpm
エラー: 依存性の欠如:
        httpd-tools = 2.4.6-98.el7.centos.7 は httpd-2.4.6-98.el7.centos.7.x86_64 に必要とされています

# httpd-toolsをインストール
[root@localhost ~]# rpm -ivh httpd-tools-2.4.6-98.el7.centos.7.x86_64.rpm
準備しています...              ################################# [100%]
更新中 / インストール中...
   1:httpd-tools-2.4.6-98.el7.centos.7################################# [100%]

# httpdをインストール
[root@localhost ~]# rpm -ivh httpd-2.4.6-98.el7.centos.7.x86_64.rpm
準備しています...              ################################# [100%]
更新中 / インストール中...
   1:httpd-2.4.6-98.el7.centos.7      ################################# [100%]

我在想确认是否安装了httpd。
您可以使用-q选项查看有关软件包的信息。如果单独使用,将显示已安装软件包的名称。
执行命令后,成功地确认了安装已完成的事实。

[root@localhost ~]# rpm -q httpd httpd-tools
httpd-2.4.6-98.el7.centos.7.x86_64
httpd-tools-2.4.6-98.el7.centos.7.x86_64

我确认安装已经执行成功,因此我想要卸载httpd。
您可以使用-e选项进行卸载。

顺便提一下,卸载时似乎也会进行依赖关系确认。由于httpd需要httpd-tools,所以首先卸载httpd,然后再卸载httpd-tools。

[root@localhost ~]# rpm -qa | grep "httpd"
httpd-2.4.6-98.el7.centos.7.x86_64
httpd-tools-2.4.6-98.el7.centos.7.x86_64

# 依存関係でアンインストールがこける。
[root@localhost ~]# rpm -evh httpd-tools-2.4.6-98.el7.centos.7.x86_64
エラー: 依存性の欠如:
        httpd-tools = 2.4.6-98.el7.centos.7 は (インストール済み)httpd-2.4.6-98.el7.centos.7.x86_64 に必要とされています

# httpd → httpd-tools の順番でアンインストール
[root@localhost ~]# rpm -evh httpd-2.4.6-98.el7.centos.7.x86_64
準備しています...              ################################# [100%]
整理中 / 削除中...
   1:httpd-2.4.6-98.el7.centos.7      ################################# [100%]
[root@localhost ~]# rpm -evh httpd-tools-2.4.6-98.el7.centos.7.x86_64
準備しています...              ################################# [100%]
整理中 / 削除中...
   1:httpd-tools-2.4.6-98.el7.centos.7################################# [100%]
[root@localhost ~]# rpm -qa | grep "httpd"

尽管顺序可能会前后颠倒,但我打算轻微验证一下升级。您可以使用-U选项来执行。我已经下载了一些旧版本文件。

# 古いバージョンのパッケージを探して、取得する。
[root@localhost ~]# yum list --showduplicates | grep "httpd"
[root@localhost ~]# yumdownloader --resolve httpd-2.4.6-95.el7.centos
[root@localhost ~]# ll
合計 5756
-rw-r--r-- 1 root root 2846172 10月 15  2020 httpd-2.4.6-95.el7.centos.x86_64.rpm
-rw-r--r-- 1 root root 2849180  4月  6 02:37 httpd-2.4.6-98.el7.centos.7.x86_64.rpm
-rw-r--r-- 1 root root   95136 10月 15  2020 httpd-tools-2.4.6-95.el7.centos.x86_64.rpm
-rw-r--r-- 1 root root   96652  4月  6 02:37 httpd-tools-2.4.6-98.el7.centos.7.x86_64.rpm

# 古いバージョンでインストールする。
[root@localhost ~]# rpm -ivh httpd-2.4.6-95.el7.centos.x86_64.rpm httpd-tools-2.4.6-95.el7.centos.x86_64.rpm
準備しています...              ################################# [100%]
更新中 / インストール中...
   1:httpd-tools-2.4.6-95.el7.centos  ################################# [ 50%]
   2:httpd-2.4.6-95.el7.centos        ################################# [100%]
[root@localhost ~]# rpm -qa | grep "httpd"
httpd-tools-2.4.6-95.el7.centos.x86_64
httpd-2.4.6-95.el7.centos.x86_64

# 新しいバージョンにアップグレード
[root@localhost ~]# rpm -Uvh httpd-2.4.6-98.el7.centos.7.x86_64.rpm httpd-tools-2.4.6-98.el7.centos.7.x86_64.rpm
準備しています...              ################################# [100%]
更新中 / インストール中...
   1:httpd-tools-2.4.6-98.el7.centos.7################################# [ 25%]
   2:httpd-2.4.6-98.el7.centos.7      ################################# [ 50%]
整理中 / 削除中...
   3:httpd-2.4.6-95.el7.centos        ################################# [ 75%]
   4:httpd-tools-2.4.6-95.el7.centos  ################################# [100%]
[root@localhost ~]# rpm -qa | grep "httpd"
httpd-tools-2.4.6-98.el7.centos.7.x86_64
httpd-2.4.6-98.el7.centos.7.x86_64

我已确认升级顺利完成。
我将以此为准,终止rpm命令的验证。

我会把经常使用的选项整理到下表中。最常见的使用情景是在使用-qa时查看已安装的软件包。

パッケージのインストール・アップグレード・削除説明-i(–install)パッケージをインストール-U(–upgrade})パッケージをアップグレード-e(–erase)パッケージをアンインストール-v詳細情報を表示-h進行状況を表示
パッケージの検索と検査(-qオプションと組み合わせて使用)説明-q(–query)単体で使用した場合は、引数に指定したパッケージが存在する場合に導入しているパッケージを表示-a(–all)インストールされているすべてのパッケージを表示-i(–info)パッケージの詳細情報を表示-f(–file)ファイルを所有するパッケージを表示-l(–list)パッケージ内にあるすべてのファイルを表示

请下一个。

下一次的讨论主题将是有关Yum ,我们将进行验证。

广告
将在 10 秒后关闭
bannerAds