国产精品电影_久久视频免费_欧美日韩国产激情_成年人视频免费在线播放_日本久久亚洲电影_久久都是精品_66av99_九色精品美女在线_蜜臀a∨国产成人精品_冲田杏梨av在线_欧美精品在线一区二区三区_麻豆mv在线看

【分享】RedHat Linux包管理方面的面試經驗

系統 Linux 系統運維
大家好!我是來自Delhi的Shilpa Nair。我不久前才順利畢業,正尋找一個實習的機會。在大學早期的時候,我就對UNIX十分喜愛,所以我也希望這個機會能適合我,滿足我的興趣。我被提問了很多問題,大部分都是關于 RedHat 包管理的基礎問題。

有關 RPM 方面的 Linux 面試題 

“大家好!我是來自 Delhi 的Shilpa Nair。我不久前才順利畢業,正尋找一個實習的機會。在大學早期的時候,我就對 UNIX 十分喜愛,所以我也希望這個面試機會能適合我,滿足我的興趣。我被提問了很多問題,大部分都是關于 RedHat 包管理的基礎問題。”本文所有的問題和回答都是 Shilpa Nair 根據回憶重寫的。 

下面就是我被問到的問題,和對應的回答。我僅貼出了與 RedHat GNU/Linux 包管理相關的,也是主要被提問的。

1.Linux 里如何查找一個包安裝與否?假設你需要確認 ‘nano’ 有沒有安裝,你怎么做?

回答:為了確認 nano 軟件包有沒有安裝,我們可以使用 rpm 命令,配合 -q 和 -a 選項來查詢所有已安裝的包

  1. # rpm -qa nano
  2. # rpm -qa | grep -i nano
  3.  
  4. nano-2.3.1-10.el7.x86_64

同時包的名字必須是完整的,不完整的包名會返回到提示符,不打印任何東西,就是說這包(包名字不全)未安裝。下面的例子會更好理解些:

我們通常使用 vim 替代 vi 命令。當時如果我們查找安裝包 vi/vim 的時候,我們就會看到標準輸出上沒有任何結果。

  1. # vi
  2. # vim

盡管如此,我們仍然可以像上面一樣運行 vi/vim 命令來清楚地知道包有沒有安裝。只是因為我們不知道它的完整包名才不能找到的。如果我們不確切知道完整的文件名,我們可以使用通配符:

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

通過這種方式,我們可以獲得任何軟件包的信息,安裝與否。

2.你如何使用 rpm 命令安裝 XYZ 軟件包?

回答:我們可以使用 rpm 命令安裝任何的軟件包(*.rpm),像下面這樣,選項 -i(安裝),-v(冗余或者顯示額外的信息)和 -h(在安裝過程中,打印#號顯示進度)。

  1. # rpm -ivh peazip-1.11-1.el6.rf.x86_64.rpm
  2.  
  3. Preparing... ################################# [100%]
  4. Updating / installing...
  5. 1:peazip-1.11-1.el6.rf ################################# [100%]

如果要升級一個早期版本的包,應加上 -U 選項,選項 -v 和 -h 可以確保我們得到用 # 號表示的冗余輸出,這增加了可讀性。

3.你已經安裝了一個軟件包(假設是 httpd),現在你想看看軟件包創建并安裝的所有文件和目錄,你會怎么做?

回答:使用選項 -l(列出所有文件)和 -q(查詢)列出 httpd 軟件包安裝的所有文件(Linux 哲學:所有的都是文件,包括目錄)。

  1. # rpm -ql httpd
  2.  
  3. /etc/httpd
  4. /etc/httpd/conf
  5. /etc/httpd/conf.d
  6. ...

4.假如你要移除一個軟件包,叫 postfix。你會怎么做?

回答:首先我們需要知道什么包安裝了 postfix。查找安裝 postfix 的包名后,使用 -e(擦除/卸載軟件包)和 -v(冗余輸出)兩個選項來實現。

  1. # rpm -qa postfix*
  2.  
  3. postfix-2.10.1-6.el7.x86_64

然后移除 postfix,如下:

  1. # rpm -ev postfix-2.10.1-6.el7.x86_64
  2.  
  3. Preparing packages...
  4. postfix-2:3.0.1-2.fc22.x86_64

5.獲得一個已安裝包的具體信息,如版本,發行號,安裝日期,大小,總結和一個簡短的描述。

回答:我們通過使用 rpm 的選項 -qi,后面接包名,可以獲得關于一個已安裝包的具體信息。

舉個例子,為了獲得 openssh 包的具體信息,我需要做的就是:

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

6.假如你不確定一個指定包的配置文件在哪,比如 httpd。你如何找到所有 httpd 提供的配置文件列表和位置。

回答: 我們需要用選項 -c 接包名,這會列出所有配置文件的名字和他們的位置。

  1. # rpm -qc httpd
  2.  
  3. /etc/httpd/conf.d/autoindex.conf
  4. /etc/httpd/conf.d/userdir.conf
  5. /etc/httpd/conf.d/welcome.conf
  6. /etc/httpd/conf.modules.d/00-base.conf
  7. /etc/httpd/conf/httpd.conf
  8. /etc/sysconfig/httpd

相似地,我們可以列出所有相關的文檔文件,如下:

  1. # rpm -qd httpd
  2.  
  3. /usr/share/doc/httpd/ABOUT_APACHE
  4. /usr/share/doc/httpd/CHANGES
  5. /usr/share/doc/httpd/LICENSE
  6. ...

我們也可以列出所有相關的證書文件,如下:

  1. # rpm -qL openssh
  2.  
  3. /usr/share/licenses/openssh/LICENCE

忘了說明上面的選項 -d 和 -L 分別表示 “文檔” 和 “證書”,抱歉。

#p#

7.你找到了一個配置文件,位于‘/usr/share/alsa/cards/AACI.conf’,現在你不確定該文件屬于哪個包。你如何查找出包的名字?

回答:當一個包被安裝后,相關的信息就存儲在了數據庫里。所以使用選項 -qf(-f 查詢包擁有的文件)很容易追蹤誰提供了上述的包。

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

類似地,我們可以查找(誰提供的)關于任何子包,文檔和證書文件的信息。

8.你如何使用 rpm 查找最近安裝的軟件列表?

回答:如剛剛說的,每一樣被安裝的文件都記錄在了數據庫里。所以這并不難,通過查詢 rpm 的數據庫,找到最近安裝軟件的列表。

我們通過運行下面的命令,使用選項 -last(打印出最近安裝的軟件)達到目的。

  1. # rpm -qa --last

上面的命令會打印出所有安裝的軟件,最近安裝的軟件在列表的頂部。

如果我們關心的是找出特定的包,我們可以使用 grep 命令從列表中匹配包(假設是 sqlite ),簡單如下:

  1. # rpm -qa --last | grep -i sqlite
  2.  
  3. sqlite-3.8.10.2-1.fc22.x86_64 Thursday 18 June 2015 05:05:43 PM IST

我們也可以獲得10個最近安裝的軟件列表,簡單如下:

  1. # rpm -qa --last | head

我們可以重定義一下,輸出想要的結果,簡單如下:

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

上面的命令中,-n 代表數目,后面接一個常數值。該命令是打印2個最近安裝的軟件的列表。

9.安裝一個包之前,你如果要檢查其依賴。你會怎么做?

回答:檢查一個 rpm 包(XYZ.rpm)的依賴,我們可以使用選項 -q(查詢包),-p(指定包名)和 -R(查詢/列出該包依賴的包,嗯,就是依賴)。

  1. # rpm -qpR gedit-3.16.1-1.fc22.i686.rpm
  2.  
  3. /bin/sh
  4. /usr/bin/env
  5. glib2(x86-32) >= 2.40.0
  6. gsettings-desktop-schemas
  7. gtk3(x86-32) >= 3.16
  8. gtksourceview3(x86-32) >= 3.16
  9. gvfs
  10. libX11.so.6
  11. ...

10.rpm 是不是一個前端的包管理工具呢?

回答不是!rpm 是一個后端管理工具,適用于基于 Linux 發行版的 RPM (此處指 Redhat Package Management)。

YUM,全稱 Yellowdog Updater Modified,是一個 RPM 的前端工具。YUM 命令自動完成所有工作,包括解決依賴和其他一切事務。

最近,DNF(YUM命令升級版)在Fedora 22發行版中取代了 YUM。盡管 YUM 仍然可以在 RHEL 和 CentOS 平臺使用,我們也可以安裝 dnf,與 YUM 命令共存使用。據說 DNF 較于 YUM 有很多提高。

知道更多總是好的,保持自我更新?,F在我們移步到前端部分來談談。

11.你如何列出一個系統上面所有可用的倉庫列表。

回答:簡單地使用下面的命令,我們就可以列出一個系統上所有可用的倉庫列表。

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

上面的命令僅會列出可用的倉庫。如果你需要列出所有的倉庫,不管可用與否,可以這樣做。

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

12.你如何列出一個系統上所有可用并且安裝了的包?

回答:列出一個系統上所有可用的包,我們可以這樣做:

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

而列出一個系統上所有已安裝的包,我們可以這樣做。

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

#p#

而要同時滿足兩個要求的時候,我們可以這樣做。

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

13.你會怎么在一個系統上面使用 YUM 或 DNF 分別安裝和升級一個包與一組包?

回答:安裝一個包(假設是 nano),我們可以這樣做,

  1. # yum install nano

而安裝一組包(假設是 Haskell),我們可以這樣做,

  1. # yum groupinstall 'haskell'

升級一個包(還是 nano),我們可以這樣做,

  1. # yum update nano

而為了升級一組包(還是 haskell),我們可以這樣做,

  1. # yum groupupdate 'haskell'

14.你會如何同步一個系統上面的所有安裝軟件到穩定發行版?

回答:我們可以一個系統上(假設是 CentOS 或者 Fedora)的所有包到穩定發行版,如下,

  1. # yum distro-sync [在 CentOS/ RHEL]
  2. # dnf distro-sync [在 Fedora 20之后版本]

似乎來面試之前你做了相當不多的功課,很好!在進一步交談前,我還想問一兩個問題。

15.你對 YUM 本地倉庫熟悉嗎?你嘗試過建立一個本地 YUM 倉庫嗎?讓我們簡單看看你會怎么建立一個本地 YUM 倉庫。

回答:首先,感謝你的夸獎?;氐絾栴},我必須承認我對本地 YUM 倉庫十分熟悉,并且在我的本地主機上也部署過,作為測試用。

(1)為了建立本地 YUM 倉庫,我們需要安裝下面三個包:

  1. # yum install deltarpm python-deltarpm createrepo

(2)新建一個目錄(假設 /home/$USER/rpm),然后復制 RedHat/CentOS DVD 上的 RPM 包到這個文件夾下

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

(3)新建基本的庫頭文件如下。

  1. # createrepo -v /home/$USER/rpm

(4)在路徑 /etc/yum.repo.d 下創建一個 .repo 文件(如 abc.repo):

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

重要:用你的用戶名替換掉 $USER。

以上就是創建一個本地 YUM 倉庫所要做的全部工作。我們現在可以從這里安裝軟件了,相對快一些,安全一些,并且最重要的是不需要 Internet 連接。

責任編輯:火鳳凰 來源: Linux中國
相關推薦

2009-12-17 09:49:18

Ruby代碼管理

2021-02-05 07:48:06

Linux操作系統軟件

2022-05-07 11:08:50

Linuxapt 命令

2022-05-04 11:10:58

Linuxdnf 命令

2020-07-16 07:00:49

容器管理考量

2015-11-03 14:23:10

新手Arch LinuxLinux

2013-08-08 10:12:00

華為解決方案華為

2011-01-14 12:43:58

2022-05-26 10:23:06

CIO數字化轉型

2020-06-15 19:20:00

AppImageLinux軟件包管理

2012-05-21 10:13:12

Linux系統管理

2020-02-18 15:53:09

AI 數據人工智能

2011-02-16 08:56:19

2012-02-17 09:33:52

虛擬化桌面虛擬化

2010-07-30 13:06:22

NFS端口

2016-12-13 15:18:27

機器學習搜索交互

2021-12-30 11:01:26

數字化轉型企業技術服務

2009-12-24 16:01:17

redhat Linu

2011-04-07 13:18:00

管理軟件項目項目
點贊
收藏

51CTO技術棧公眾號

久久久影视精品| 三级精品视频| 伊人久久久大香线蕉综合直播 | 亚洲精品456在线播放狼人| 欧美在线亚洲一区| 欧美成人福利| 亚洲欧洲黄色网| 成全电影大全在线观看| 日韩一级黄色片| 美女写真理伦片在线看| 欧美精品久久久久久久多人混战 | porn亚洲| 欧美久久久久中文字幕| 自拍视频在线| 欧美精选在线播放| av毛片在线看| 亚洲成人久久电影| 嗯啊主人调教在线播放视频| 精品国产123| 最近在线中文字幕| 俺也去精品视频在线观看| 91久久国产综合久久91猫猫| 亚洲免费电影在线观看| 台湾成人免费视频| 超碰97人人做人人爱少妇| 亚洲成人黄色| 国产精品www| 午夜久久美女| 欧美亚洲精品日韩| 美女免费视频一区二区| 黄色片免费在线观看视频| 播五月开心婷婷综合| 欧美性大战久久久久xxx| 久久久久久久综合狠狠综合| 成年人视频在线免费| 中文字幕精品在线不卡| 麻豆电影传媒二区| 日韩欧美一区视频| 久热国产在线| 正在播放欧美一区| www.久久草.com| 日韩av成人在线| 亚洲视频碰碰| 免费h精品视频在线播放| 国产麻豆午夜三级精品| xxxx一级片| 欧美日韩亚洲高清| 蜜桃视频www网站在线观看| 精品中文字幕视频| 精品视频97| 青娱乐一区二区| 国产色一区二区| www.亚洲.com| 日韩中文在线观看| 99国产精品一区二区| 一区二区av| 亚洲九九爱视频| 999福利在线视频| 欧美一区二区三区免费观看| 久久深夜福利| 91福利电影| 亚洲成人网av| 成人激情开心网| 日本一区二区三区四区五区六区| 亚洲欧美日韩在线播放| 91精品国产黑色瑜伽裤| 日本一区二区三区四区视频| 日韩—二三区免费观看av| 性生活免费在线观看| 欧美日韩一区久久| 国产精品igao视频网网址不卡日韩| 99中文字幕| 久久久久久影视| 最新超碰在线| 欧美亚洲第一区| 麻豆成人综合网| 调教在线观看| 国产亚洲精品成人av久久ww| 日韩久久综合| 福利视频一二区| 欧美日韩视频在线第一区 | 韩国亚洲精品| 国产三级三级看三级| 精品精品国产高清一毛片一天堂| 日本精品影院| 欧美国产视频一区| 欧美吻胸吃奶大尺度电影 | 成全视频全集| 亚洲福利在线看| 成人激情久久| 色综合天天综合在线视频| 中文字幕 在线观看| 国产欧美日韩丝袜精品一区| 国产a视频精品免费观看| 东热在线免费视频| 韩国三级日本三级少妇99| 蜜桃视频一区二区三区在线观看| 97香蕉久久| 欧美精品videossex88| 精品一区二区三区久久| 国产综合在线观看| 欧美在线观看日本一区| 99久久婷婷国产综合精品电影| 最新黄网在线观看| 国产精品国产精品| 亚洲第一精品在线| 国产主播性色av福利精品一区| 国产黄色激情视频| 欧美成人精品高清在线播放| 99精品网站| ckplayer中文字幕| 久久福利视频网| 丁香婷婷综合激情五月色| 9999精品成人免费毛片在线看| 国产精品一区二区三区免费观看| 亚洲一卡二卡三卡四卡| 婷婷亚洲成人| 天天综合天天| 欧美成人精品不卡视频在线观看| 国产成人自拍网| 久久电影tv| 日韩成人三级视频| 亚洲视频axxx| 高清不卡一区二区在线| 日韩av超清在线观看| 黄频视频在线观看| 欧美精品一区二区三| 美腿丝袜亚洲综合| 色婷婷在线播放| 日本午夜精品一区二区三区| 日韩写真欧美这视频| 欧美亚洲三级| 欧美xxxbbb| 国产 欧美 日本| 最新中文字幕亚洲| 国产亚洲精品中文字幕| 国产精伦一区二区三区| 四虎永久在线高清国产精品| 欧美一级大片在线免费观看| 亚洲综合清纯丝袜自拍| 久久精品国内一区二区三区水蜜桃 | 成人免费在线网址| 五月天欧美精品| 婷婷色综合网| a天堂中文在线88| 久久久精品免费网站| 高清在线观看日韩| 国产不卡一区视频| 性欧美精品高清| 在线观看国产精品入口| 欧美xxxx性| 国产激情一区二区三区桃花岛亚洲| www.在线播放| 日韩视频专区| 精品在线观看国产| av电影一区二区| 国产一区福利| 奇米影视888狠狠狠777不卡| 性高爱久久久久久久久| 屁屁影院在线观看| 日韩小视频网站| 国产精品久久亚洲| 欧美精品电影在线| 日韩精品极品毛片系列视频| 欧美怡红院视频| 色综合久久久久| 精品国产1区2区| 中文字幕视频一区| 久久品道一品道久久精品| 国产一区二区不卡在线| 日欧美一区二区| 久久精品1区| 66久久国产| 国产成年精品| 亚洲美女久久精品| 羞羞在线观看网站| 成人女人免费毛片| 欧美精品在线极品| 97久久精品在线| 日韩性感在线| h视频在线免费观看| 欧美猛男男男激情videos| 中文字幕在线免费播放| 免费久久久一本精品久久区| 正在播放亚洲1区| 五月激情丁香一区二区三区| 秋霞午夜av一区二区三区| 欧美激情99| 99视频有精品| 成人综合激情网| 136国产福利精品导航| 精品国产91久久久| 亚洲福利一二三区| 一区二区久久久久久| 一二三四社区欧美黄| 午夜日韩在线观看| www.日韩免费| 国产最新免费视频| 国产伦精品一区二区三区免| 中文日韩在线视频|