RedHat GNU / Linux软件包管理问题整理。

1.您如何查找是否已安装软件包?假设您必须查找是否已安装“ nano”,该怎么办?

答:

答:要查找是否安装了nano(无论是否安装了天气)的软件包,我们可以使用rpm命令,其中选项-q用于查询,而-a代表所有已安装的软件包。


# rpm -qa nano
OR
# rpm -qa | grep -i nanonano-2.3.1-10.el7.x86_64


另外,软件包名称必须完整,不完整的软件包名称将返回提示,而不打印任何内容,这表示未安装软件包(不完整的软件包名称)。通过以下示例可以轻松理解:

我们通常用vi代替vim命令。但是,如果找到软件包vi / vim,则在标准输出上将没有任何结果。

#vi
#vim


但是,我们可以通过触发vi / vim命令清楚地看到该软件包已安装。罪魁祸首是文件名不完整。如果不确定确切的文件名,可以使用通配符作为:


# rpm -qa vim*
vim-minimal-7.4.160-1.el7.x86_64


这样,我们可以找到有关任何软件包的信息,无论是否安装。



2.如何使用rpm安装软件包?


答:我们可以使用如下所示的rpm命令a安装任何软件包(* .rpm),此处选项-i(安装),- v(详细或显示其他信息)和-h(在软件包安装过程中打印哈希标记)。


#rpm -ivh peazip-1.11-1.el6.rf.x86_64.rpm
正在准备... ############################### [100%]更新/安装中...
   1:peazip-1.11-1.el6.rf ############################### [100%]


如果应该从早期版本的-U开关升级软件包,请使用选项-v和-h来确保我们获得带哈希标记的详细输出,从而使其可读。


3.您已经安装了一个软件包(例如httpd),现在想查看上述软件包安装和创建的所有文件和目录。

答:我们可以使用选项-l(列出所有文件)和-q(用于查询)列出由httpd软件包安装的所有文件(Linux将所有内容都视为包含目录的文件)。



#rpm -ql httpd
/etc/httpd/ 
/etc/httpd/conf/
/etc/httpd/conf.d...

4.您应该删除一个名为postfix的软件包.

答:首先,我们需要知道postfix是由哪个软件包安装的。使用-e擦除/卸载软件包选项和–v(详细输出)找到安装了postfix的软件包名称。



# rpm -qa postfix*

postfix-2.10.1-6.el7.x86_64

然后删除后缀为:

# rpm -ev postfix-2.10.1-6.el7.x86_64

Preparing packages...
postfix-2:3.0.1-2.fc22.x86_64

5.获取有关已安装软件包的详细信息,包括版本,发行版,安装日期,大小,摘要和简要说明等信息。


答:通过使用选项-qa和rpm,然后加上软件包名称,我们可以获得有关已安装软件包的详细信息。

例如,要查找openssh软件包的详细信息,我需要做的是:

# rpm -qa openssh

[root@tecmint tecmint]# rpm -qi openssh
Name        : openssh
Version     : 6.8p1
Release     : 5.fc22
Architecture: x86_64
Install Date: Thursday 28 May 2015 12:34:50 PM IST
Group       : Applications/Internet
Size        : 1542057
License     : BSD
....

6.您不确定特定软件包(例如httpd)提供的配置文件是什么。您将如何找到httpd提供的所有配置文件及其位置的列表。

答:我们需要运行选项-c,然后使用rpm命令运行软件包名称,它将列出所有配置文件的名称及其位置。



#rpm -qc httpd
/etc/httpd/conf.d/autoindex.conf
/etc/httpd/conf.d/userdir.conf
/etc/httpd/conf.d/welcome.conf
/etc/httpd/conf.modules.d/00-base.conf
/etc/httpd/conf/httpd.conf
/etc/sysconfig/httpd

同样,我们可以将所有关联的文档文件列出为:


#rpm -qd httpd
/usr/share/doc/httpd/ABOUT_APACHE
/usr/share/doc/httpd/CHANGES
/usr/share/doc/httpd/LICENSE
...

同样,我们可以将关联的许可证文件列出为:



#rpm -qL openssh
/ usr / share / licenses/openssh/LICENCE

上命令中的选项-d和-L分别代表' documents '和' License '。


7.您遇到了位于“ /usr/share/alsa/cards/AACI.conf”的配置文件,并且不确定此配置文件与哪个软件包相关联。您将如何找到父包名称?


答:安装软件包时,相关信息将存储在数据库中。因此,使用-qf选项(-f查询拥有文件的软件包)可以轻松找到提供上述软件包的工具。



#rpm -qf /usr/share/alsa/cards/AACI.conf
alsa-lib-1.0.28-2.el7.x86_64

8.如何找到使用rpm安装的最新软件的列表?



答:如前所述,正在安装的所有内容均已记录在数据库中。因此,查询rpm数据库并找到最近安装的软件列表并不困难。

我们可以通过使用选项–last运行以下命令来做到这一点(打印最新安装的软件)。

#rpm -qa --last


上面的命令将按顺序打印所有安装的软件包,以便最后安装的软件出现在顶部。

如果我们要查找特定的软件包,则可以从列表中grep那个软件包(例如sqlite),简单地如下:

#rpm -qa --last | grep -i sqlite
sqlite-3.8.10.2-1.fc22.x86_64IST 2015年6月18日星期四05:05:43 PM

我们还可以简单地获取10种最新安装的软件的列表:



#rpm -qa --last | head

我们可以优化结果以输出更自定义的结果,如下所示:

#rpm -qa --last | head -n 2

在上面的命令中,-n代表数字,后跟数字值。上面的命令将打印2个最新安装的软件的列表。


9.在安装软件包之前,应该检查其依赖性。你会怎么做?

答:要检查rpm软件包(XYZ.rpm)的依赖性,我们可以使用-q(查询软件包),- p(查询软件包文件)和-R(需要/列出此软件包所依赖的软件包)的开关,即,依赖项)。

10. rpm是前端软件包管理工具吗?


答:不!rpm是基于RPM的Linux发行版的后端程序包管理。

代表Yellowdog Updater Modified的YUM是rpm的前端。YUM使解决依赖关系和其他所有问题的整个过程自动化。

最近,DNF(Dandified YUM)取代了Fedora 22中的YUM。尽管YUM仍可用于RHEL和CentOS,但我们可以安装dnf并将其与YUM一起使用。据说DNF与YUM相比有很多改进。




11.您将如何列出系统上所有启用的存储库?

答:我们可以简单地使用以下命令列出系统上所有已启用的存储库。

# yum repolist
or
# dnf repolist
Last metadata expiration check performed 0:30:03 ago on Mon Jun 22 16:50:00 2015.
repo id                                                                           repo name                                                                                             status
*fedora                                                                           Fedora 22 - x86_64                                                                                    44,762
ozonos                                                                            Repository for Ozon OS                                                                                    61
*updates                                                                          Fedora 22 - x86_64 - Updates

上面的命令将仅列出已启用的存储库。如果我们需要列出所有仓库,无论是否启用,我们都可以。

# yum repolist all
or
# dnf repolist all 
Last metadata expiration check performed 0:29:45 ago on Mon Jun 22 16:50:00 2015.
repo id                                                                         repo name                                                                                      status
*fedora                                                                         Fedora 22 - x86_64                                                                             enabled: 44,762
fedora-debuginfo                                                                Fedora 22 - x86_64 - Debug                                                                     disabled
fedora-source                                                                   Fedora 22 - Source                                                                             disabled
ozonos                                                                          Repository for Ozon OS                                                                         enabled:     61
*updates                                                                        Fedora 22 - x86_64 - Updates                                                                   enabled:  5,018
updates-debuginfo                                                               Fedora 22 - x86_64 - Updates - Debug


12.您将如何列出系统上所有可用和已安装的软件包?

答:要列出系统上所有可用的软件包,我们可以这样做:

# yum list available
or
# dnf list available
Last metadata expiration check performed 0:34:09 ago on Mon Jun 22 16:50:00 2015.
Available Packages
0ad.x86_64                               0.0.18-1.fc22                   fedora 
0ad-data.noarch                          0.0.18-1.fc22                   fedora 
0install.x86_64                          2.6.1-2.fc21                    fedora 
0xFFFF.x86_64                            0.3.9-11.fc22                   fedora 
2048-cli.x86_64                          0.9-4.git20141214.723738c.fc22  fedora 
2048-cli-nocurses.x86_64                 0.9-4.git20141214.723738c.fc22  fedora 
....

要列出系统上所有已安装的软件包,我们可以这样做。


# yum list installed
or
# dnf list installed
Last metadata expiration check performed 0:34:30 ago on Mon Jun 22 16:50:00 2015.
Installed Packages
GeoIP.x86_64                            1.6.5-1.fc22                     @System
GeoIP-GeoLite-data.noarch               2015.05-1.fc22                   @System
NetworkManager.x86_64                   1:1.0.2-1.fc22                   @System
NetworkManager-libnm.x86_64             1:1.0.2-1.fc22                   @System
aajohan-comfortaa-fonts.noarch          2.004-4.fc22                     @System
....

要列出系统上所有可用和已安装的软件包,我们可以这样做。


# yum list
or
# dnf list
Last metadata expiration check performed 0:32:56 ago on Mon Jun 22 16:50:00 2015.
Installed Packages
GeoIP.x86_64                             1.6.5-1.fc22                    @System
GeoIP-GeoLite-data.noarch                2015.05-1.fc22                  @System
NetworkManager.x86_64                    1:1.0.2-1.fc22                  @System
NetworkManager-libnm.x86_64              1:1.0.2-1.fc22                  @System
aajohan-comfortaa-fonts.noarch           2.004-4.fc22                    @System
acl.x86_64                               2.2.52-7.fc22                   @System
....

13.如何使用YUM / DNF在系统上分别安装和更新一个软件包和一组软件包?

答:要安装一个软件包(例如nano),我们可以做到。


# yum install nano

要安装一组软件包(例如Haskell),我们可以做到。

# yum groupinstall 'haskell'

要更新软件包(例如nano),我们可以做。

# yum update nano

要更新一组软件包(例如Haskell),我们可以做到。

# yum groupupdate 'haskell'


14.如何将系统上所有已安装的软件包同步到稳定版本。

答:我们可以将系统上的所有软件包(例如CentOS或Fedora)同步到稳定版本,


# yum distro-sync      [On CentOS/RHEL]
or# dnf distro-sync      [On Fedora 20 Onwards]


15.您熟悉YUM本地存储库吗?您是否尝试过建立本地YUM存储库?让我简短地说明您将如何创建本地YUM存储库。


答:并且已经在我的本地计算机上实现了它以用于测试。

1.要设置本地YUM存储库,我们需要将以下三个软件包安装为:

# yum install deltarpm  python-deltarpm  createrepo


2.创建一个目录(例如/ home / $ USER / rpm),然后将所有RPM从RedHat / CentOS DVD复制到该文件夹。

# mkdir /home/$USER/rpm
# cp /path/to/rpm/on/DVD/*.rpm /home/$USER/rpm


3.创建基础存储库

# createrepo -v /home/$USER/rpm


4.只需在以下位置/etc/yum.repos.d创建.repo文件(例如abc.repo):

cd /etc/yum.repos.d && cat << EOF > abc.repo
[local-installation]name=yum-local
baseurl=file:///home/$USER/rpm
enabled=1
gpgcheck=0
EOF



标签: Linux 命令

作者头像
南宫俊逸创始人

君子好学,自强不息~

上一篇:云服务器_VPS_美国_(2核 4G 80 SSD 3000GB带宽)
下一篇:如何在Linux中找出文件类型

发表评论

云服务器年末钜惠,新用户低至0.55折, 1核2G轻量服务器首年96元(可优惠续费3次)


image.png

云服务器ECS

云服务器年末钜惠,新用户低至0.55折, 

1核2G轻量服务器首年96元(可优惠续费3次)


登录
用户名
密码
注册
用户名
密码
确认密码
邮箱
验证码
找回密码
用户名
邮箱
※ 重置链接将发送到邮箱