环境: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 。