Yum —— CentOS 下包管理工具 學習筆記


環境:CentOS 7 (阿里雲服務器)

一、linux 發行版下的包管理陣營


包管理系統 除了方便你安裝和管理包之外,還能幫你解決依賴問題

下面就介紹2個最主要的:

1、Debian 系 - dpkg

DPKG(Debian Package Management System),中文為 Debian 包管理系統。

命令:

1、apt-get,其中 apt 為 Advanced Packaging Tool,中文是高級打包工具。

適用發行版:Debian、Ubuntu、Linux Mint、elementary OS 等。

2、aptitude

3、等

2、Red Hat 系 - rpm

RPM(Redhat Linux Packet Manager),中文為 Redhat 包管理。

命令:

1、YUM(Yellow dog Updater, Modified),中文是黃狗更新器。

適用發行版:CentOS。

2、DNF(Dandified Yum), 中文為優美的 YUM。

適用發行版:Fedora。Fedora 18 引入了 DNF,它是下一代 YUM。

3、等

3、拓展 - RedHat、Fedora、CentOS 區別

RedHat 家族本來有桌面版 RedHat Linux,企業版 RedHat Enterprise Linux(簡稱RHEL

但自從 RedHat 9.0 版本發布后,RedHat 公司就不再開發桌面版了,而將全部力量集中在服務器版的開發上。

原本的桌面版則與來自開源社區的 Fedora 計划合並,成為 Fedora Core (FC)發行版本。

Fedora Core 定位便是桌面用戶,這個發行版每半年發行一次,且每次發行都有新功能加入。而 RedHat 則等待 FC 的每次新版本穩定后,將這些新功能添加到自己的 RHEL 版本中,所以 FC 是 RHEL 的實驗田,不推薦企業使用。


再說回來 ,RedHat 的發行版畢竟脫胎於 Linux ( Linux 是 GNU/Linux 的縮寫),也需要遵循 GNU 協議,故必須發布源代碼。 所以商業版的 RHEL,雖然二進制代碼沒有提供下載,但源代碼依然是開放的。在這種情況下,出現了centos、whitebox、dao 等等一批基於RHEL開源代碼的企業版本,其中以 CentOS( “社區企業操作系統” Community Enterprise Operating System )最為活躍。適合一些想省錢、或有技術能力、或想高度定制化系統的企業使用。

二、使用


以安裝 nodejs 包為例。

# -- 檢索(會同時列出 Installed Packages 和 Available Packages)
yum list nodejs
yum list installed # 單獨列出 Installed Packages
yum search nodejs # list 只搜索軟件包名稱,而 search 不光搜索包名,還包括摘要和描述

# -- 安裝
yum install nodejs (加 -y 可自動應答 yes) 

# -- 更新
yum check-update # 列出每個包可升至的版本
yum update 
yum update nodejs 

# -- 查看詳情(可查看安裝的也可查看未安裝的包)
yum info nodejs

列出全部/可用/不可用倉庫
yum repolist enabled

# -- 卸載
yum remove nodejs

# -- 緩存
yum clean all 清除緩存
yum makecache 生成新的緩存

三、配置


yum 的全局配置在 /etc/yum.conf。暫時用默認的就好,這里不贅述了。

四、Repository 資源庫/源


yum 的 repository 即軟件包安裝的源頭,為 .repo 文件。里面指定的鏈接即可以是 http / ftp url,也可以是本地軟件池。格式形如:

[serverid]
name=Some name for this server
baseurl=url://path/to/repository/

baseurl 可指定多個。

yum 可以同時使用多個 repository,這么多些個 .repo 文件都位於 /etc/yum.repos.d/。而 yum 安裝時會優先選擇安裝最高版本

1、默認(官方)

CentOS-Base.repo 為例:

[base]
name=CentOS-$releasever
enabled=1
failovermethod=priority
baseurl=http://mirrors.cloud.aliyuncs.com/centos/$releasever/os/$basearch/
gpgcheck=1
gpgkey=http://mirrors.cloud.aliyuncs.com/centos/RPM-GPG-KEY-CentOS-7

[updates]
name=CentOS-$releasever
enabled=1
failovermethod=priority
baseurl=http://mirrors.cloud.aliyuncs.com/centos/$releasever/updates/$basearch/
gpgcheck=1
gpgkey=http://mirrors.cloud.aliyuncs.com/centos/RPM-GPG-KEY-CentOS-7

[extras]
name=CentOS-$releasever
enabled=1
failovermethod=priority
baseurl=http://mirrors.cloud.aliyuncs.com/centos/$releasever/extras/$basearch/
gpgcheck=1
gpgkey=http://mirrors.cloud.aliyuncs.com/centos/RPM-GPG-KEY-CentOS-7

2、第三方

第三方 repository 的好處:

  • 提供比官方更多的包

  • 提供比官方更新的包

(1)EPEL

前面我們提到 CentOS 是 RHEL 開源代碼的克隆版。那如果我們還想獲得 RHEL 般額外多且又高質量的包,那么 Fedora Project 推出的 EPEL (Extra Packages for Enterprise Linux) 正好適合你。

EPEL 是為 RHEL 及衍生發行版如 CentOS、Scientific Linux 等提供高質量軟件包的項目。

yum install epel-release

安裝后會自動產生新 .repo 文件。

我這台服務器是阿里雲的 centos7,自帶了 epel 所以不用裝了。

(2)其它(以安裝 nodejs 為例)

然而,nodejs 在 epel 里的版本還是太老,才 6.17.1,而目前最新的 LTS 版本已經到 12.13.1 了。所以建議再添加新的 repository ,即 nodesource

curl -sL https://rpm.nodesource.com/setup_12.x | sudo -E bash -
# 注意:這里 setup_12.x 的 12 記得換成你想要的版本

完成后它會提示你先裝 sudo yum install gcc-c++ make,然后再 sudo yum install -y nodejs 就安裝成功了。

3、換源

針對國內牆的緣故,你可以考慮換源,可參考:https://www.runoob.com/linux/linux-yum.html


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM