環境:CentOS 7 (阿里雲服務器)html
包管理系統 除了方便你安裝和管理包以外,還能幫你解決依賴問題。node
下面就介紹2個最主要的:linux
DPKG
(Debian Package Management System),中文爲 Debian 包管理系統。c++
一、apt-get
,其中 apt 爲 Advanced Packaging Tool,中文是高級打包工具。centos
適用發行版:Debian、Ubuntu、Linux Mint、elementary OS 等。緩存
二、aptitudebash
三、等服務器
RPM
(Redhat Linux Packet Manager),中文爲 Redhat 包管理。curl
一、YUM(Yellow dog Updater, Modified),中文是黃狗更新器。工具
適用發行版:CentOS。
二、DNF(Dandified Yum), 中文爲優美的 YUM。
適用發行版:Fedora。Fedora 18 引入了 DNF,它是下一代 YUM。
三、等
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
。暫時用默認的就好,這裏不贅述了。
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 安裝時會優先選擇安裝最高版本。
以 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
第三方 repository 的好處:
提供比官方更多的包
提供比官方更新的包
前面咱們提到 CentOS 是 RHEL 開源代碼的克隆版。那若是咱們還想得到 RHEL 般額外多且又高質量的包,那麼 Fedora Project 推出的 EPEL
(Extra Packages for Enterprise Linux) 正好適合你。
EPEL 是爲 RHEL 及衍生髮行版如 CentOS、Scientific Linux 等提供高質量軟件包的項目。
yum install epel-release
安裝後會自動產生新 .repo
文件。
我這臺服務器是阿里雲的 centos7,自帶了 epel 因此不用裝了。
然而,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 就安裝成功了。
針對國內牆的緣故,你能夠考慮換源,可參考:https://www.runoob.com/linux/linux-yum.html 。