网站搜索

Shilpa Nair 分享 RedHat Linux 包管理面试经历


Shilpa Nair于2015年刚刚毕业。她前往位于德里诺伊达国家新闻电视台申请实习职位。当她在毕业的最后一年寻求作业帮助时,她遇到了 Tecmint。从那时起,她就定期访问 Howmint。

所有的问题和答案都是根据Shilpa Nair的记忆重写的。

“嗨朋友们!我是来自德里的希尔帕·奈尔。我最近刚刚毕业,并在获得学位后不久就正在寻找实习生职位。从大学早期开始,我就对 UNIX 产生了浓厚的兴趣,并且一直在寻找适合我并满足我灵魂的角色。我被问了很多问题,其中大部分是与 RedHat 包管理相关的基本问题。 ”

以下是我被问到的问题及其相应的答案。我只发布那些与 RedHat GNU/Linux 包管理相关的问题,因为它们主要是被问到的。

1. 如何知道某个包是否安装?假设您必须查找是否安装了“nano”,您会做什么?

答案:查找软件包nano,天气是否安装,我们可以使用rpm命令,选项-q用于查询,-a代表所有已安装的软件包。

rpm -qa nano
OR
rpm -qa | grep -i nano

nano-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 安装软件包 XYZ?

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

rpm -ivh peazip-1.11-1.el6.rf.x86_64.rpm

Preparing...                          ################################# [100%]
Updating / installing...
   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
....