软件安装
简介
概念详解
# 概念详解
- 开放源码: 程序码, 写给人类看的程序语言, 但机器并不认识, 所以无法执行;
- 编译器: 将程序码转译成为机器看的懂得语言, 就类似翻译者的角色;
- 可可执行文件: 经过编译器变成二进制程序后, 机器看的懂所以可以执行的文件;
- make: 作用是开始进行源代码编译;
- configure: 一般用来生成 Makefile, 为下一步的编译做准备;
- Tarball软件: 所谓的 Tarball 文件, 其实就是将软件的所有源代码文件先以 tar 打包, 然后再以压缩技术来压缩, 通常最常见的就是以 gzip 来压缩;
- Tarball: linux系统下最方便的打包工具, 以tar这个指令来打包与压缩的档案;
- RPM: 全名是"RedHat Package Manager"简称则为 RPM; 通过预先编译并打包成为 RPM 文件格式后, 再安装软件的一种方式;
- SRPM: SRPM 所提供的套件内容并没有经过编译, 提供的是原始码;其中SRPM中包含了所有 RPM 档案所提供的数据;
- YUM: Yum是一个交互式的、基于RPM的包管理器; 它可以自动执行系统更新, 包括依赖关系基于"仓库"元数据的分析和废弃处理;
# 常用相关命令
- file: 用于识别文件的类型, 也可以用来辨别一些内容的编码格式, 通过分析文件头部信息中的标识来显示文件类;
- type: 用来显示指定命令的类型, 判断给出的指令是内部指令还是外部指令;
# 软件安装方式
##Tarball方式
- 取得原始文件: 将 tarball 文件在 /usr/local/src 目录下解压缩;
- 取得步骤流程: 进入新创建的目录下面,去查阅 INSTALL 与 README 等相关文件内容 (很重要的步骤) ;
- 相依属性软件安装: 根据 INSTALL/README 的内容察看并安装好一些相依的软件 (非必要) ;
- 创建 makefile: 以自动侦测程序 (configure 或 config) 侦测作业环境,并创建 Makefile 这个文件;
- 编译: 以 make 这个程序并使用该目录下的 Makefile 做为他的参数配置文件,来进行 make (编译或其他) 的动作;
- 安装: 以 make 这个程序,并以 Makefile 这个参数配置文件,依据 install 这个标的 (target) 的指定来安装到正确的路径;
##RPM方式
- 将 RPM 由厂商的网页下载下来;
- 解决 RPM 包管理依赖;
- 通过 RPM -ivh 安装软件;
##YUM方式
- 配置网络(网络可通);
- 修改数据源;
- 通过 yum install命令安装软件;
目前在 Linux 界软件安装方式最常见的有两种,分别是:
- dpkg: 这个机制最早是由 Debian Linux 社群所开发出来的, 通过 dpkg 的机制, Debian 提供的软件就能够简单的安装起来, 同时还能提供安装后的软件信息, 实在非常不错; 只要是衍生于 Debian 的其他 Linux distributions 大多使用 dpkg 这个机制来管理软件的, 包括 B2D, Ubuntu 等等;
- RPM: 这个机制最早是由 Red Hat 这家公司开发出来的, 后来实在很好用, 因此很多 distributions 就使用这个机制来作为软件安装的管理方式; 包括 Fedora, CentOS, SuSE 等等知名的开发商都是用这咚咚;
istribution 代表 | 软件管理机制 | 使用指令 | 线上升级机制(指令) |
---|---|---|---|
Red Hat/Fedora | RPM | rpm, rpmbuild | YUM (yum) |
Debian/Ubuntu | DPKG | dpkg | APT (apt-get) |
RPM 与 SRPM区别:
文件格式 | 文件名格式 | 直接安装与否 | 内含程序类型 | 可否修改参数并编译 |
---|---|---|---|---|
RPM | xxx.rpm | 可 | 已编译 | 不可 |
SRPM | xxx.src.rpm | 不可 | 未编译之源代码 | 可 |
file 命令使用
# 查看系统的文件
$ file /bin/bash
/bin/bash: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.32, BuildID[sha1]=9223530b1aa05d3dbea7e72738b28b1e9d82fbad, stripped
# 是 binary 且是可以执行的时候, 就会显示可执行文件类别 (ELF 64-bit LSB executable), 同时会说明是否使用动态函数库 (shared libs);
# 查看系统提供的文件
$ file /etc/init.d/network
/etc/init.d/network: Bourne-Again shell script, ASCII text executable
# 如果是一般的 script , 就会显示出 text executables 之类的字样;
命名规范
Linux安装包命名规范,通过 rp-pppoe-3.11-5.el7.x86_64.rpm
查看文件的意义:
- rp-pppoe: 软件名称;
- 3.11: 软件版本信息;
- 5: 释出版本次数;
- el7.x86_64: 操作硬件平台;
- rpm: 扩展名;
平台名称 | 适合平台说明 |
---|---|
i386 | 几乎适用于所有的 x86 平台,不论是旧的 pentum 或者是新的 Intel Core 2 与 K8 系列的 CPU 等等,都可以正常的工作!那个 i 指的是 Intel 相容的 CPU 的意思,至于 386 不用说,就是 CPU 的等级啦! |
i586 | 就是针对 586 等级的计算机进行最优化编译。那是哪些 CPU 呢?包括 pentum 第一代 MMX CPU, AMD 的 K5, K6 系列 CPU (socket 7 插脚) 等等的 CPU 都算是这个等级; |
i686 | 在 pentun II 以后的 Intel 系列 CPU ,及 K7 以后等级的 CPU 都属于这个 686 等级! 由于目前市面上几乎仅剩 P-II 以后等级的硬件平台,因此很多 distributions 都直接释出这种等级的 RPM 文件。 |
x86_64 | 针对 64 位的 CPU 进行最优化编译设置,包括 Intel 的 Core 2 以上等级 CPU ,以及 AMD 的 Athlon64 以后等级的 CPU ,都属于这一类型的硬件平台。 |
noarch | 就是没有任何硬件等级上的限制。一般来说,这种类型的 RPM 文件,里面应该没有 binary program 存在, 较常出现的就是属于 shell script 方面的软件。 |
Tarball&RPM&YUM
Tarball
# Tarball 安装流程
- 将 Tarball 由厂商的网页下载下来;
- 将 Tarball 解开,产生很多的源代码文件;
- 开始以 gcc 进行源代码的编译 (会产生目标文件 object files);
- 然后以 gcc 进行函数库、主、副程序的链接,以形成主要的 binary file;
- 将上述的 binary file 以及相关的配置文件安装至自己的主机上面;
# Tarball 安装常用命令
- ./configure: 建立 Makefile 文件;
- make clean: 讀取 Makefile 中關於 clean 的工作;
- make: 會依據 Makefile 當中的預設工作進行編譯的行为;
- make install: 會依據 Makefile 這個文件裡面關於 install 的項目;
# Tarball 默认安装路径
- /usr/local/etc: 配置文件
- /usr/local/lib: 函数库
- /usr/local/bin: 可执行文件
- /usr/local/man: 线上说明文档, 主要是可通过 man 命令查看命令使用文档
# 建议
- 最好将 tarball 的原始数据解压缩到 /usr/local/src 当中;
- 安装时, 最好安装到 /usr/local 这个默认路径下;
- 考虑未来的卸载过程, 最好可以将每个软件单独的安装在 /usr/local 下面;
- 为安装到单独目录的软件之 man page 加入 man path 搜寻;
- 安装 nginx 依赖
$ yum install -y wget gcc pcre pcre-devel zlib zlib-devel openssl openssl-devel 安装
- 下载&解压 nginx 源码包
# 下载 nginx 源码包
$ wget http://nginx.org/download/nginx-1.16.1.tar.gz
# 解压 nginx 源码包
$ tar -zxvf nginx-1.16.1.tar.gz -C /usr/local/src
# 进入 nginx 源码路径
$ cd /usr/local/src/nginx-1.16.1
- 参数配置&Makefile生成
# 查詢可用的參數
$ ./configure --help
# 参数配置
$ ./configure --prefix=/usr/local/nginx \ # 安装路径指定
--sbin-path=/usr/local/nginx/sbin/nginx \
--modules-path=/usr/local/nginx/modules \
--conf-path=/usr/local/nginx/conf/nginx.conf \
--error-log-path=/usr/local/nginx/logs/error.log \
--http-log-path=/usr/local/nginx/logs/access.log \
--pid-path=/usr/local/nginx/logs/nginx.pid \
--lock-path=/usr/local/nginx/logs/nginx.lock \
--with-http_gzip_static_module \
--with-http_ssl_module
# 创建 Makefile
$ make
# 安装 nginx
$ make install
RPM
# RPM 安装流程(离线、在线都可安装软件)
- 将 RPM 由厂商的网页下载下来;
- 解决 RPM 包管理依赖;
- 通过 RPM -ivh 安装软件;
# RPM 默认安装路径
- /etc: 一些配置文件放置的目录, 例如 /etc/crontab;
- /usr/bin: 一些可可执行文件案;
- /usr/lib: 一些程序使用的动态函数库;
- /usr/share/doc: 一些基本的软件使用手册与说明文档;
- /usr/share/man: 一些 man page 文件;
# RPM 常用命令
- rpm -ivh package_name
- rpm -Uvh package_name
- rpm -qa
- rpm -e
- RPM安装软件
# 光盘安装软件
$ rpm -ivh /光盘挂载路径/rp-pppoe-3.11-5.el7.x86_64.rpm
# 安装多个软件
$ rpm -ivh a.i386.rpm b.i386.rpm *.rpm # *.rpm表示许多的软件文件
# 联网安装软件
$ rpm -ivh http://website.name/path/pkgname.rpm
- RPM升级
# -Uvh: 后面接的软件即使没有安装过, 则系统将予以直接安装; 若后面接的软件有安装过旧版, 则系统自动更新至新版;
# -Fvh: 如果后面接的软件并未安装到你的 Linux 系统上, 则该软件不会被安装; 亦即只有已安装至你 Linux 系统内的软件会被"升级";
- RPM查询
# 显示所有安装软件
$ rpm -qa
# 显示已安装的软件
$ rpm -q[licdR] 已安装的软件名称
# 显示已安装的软件
$ rpm -qf 存在于系统上面的某个文件名
# 查看RPM文件
$ rpm -qp[licdR] 未安装的某个文件名称
#选项与参数:
#查询已安装软件的信息:
##-q: 仅查询,后面接的软件名称是否有安装;
##-qa: 列出所有的,已经安装在本机 Linux 系统上面的所有软件名称;
##-qi: 列出该软件的详细信息 (information) ,包含开发商、版本与说明等;
##-ql: 列出该软件所有的文件与目录所在完整文件名 (list) ;
##-qc: 列出该软件的所有配置文件 (找出在 /etc/ 下面的文件名而已)
##-qd: 列出该软件的所有说明文档 (找出与 man 有关的文件而已)
##-qR: 列出与该软件有关的相依软件所含的文件 (Required 的意思)
##-qf: 由后面接的文件名称,找出该文件属于哪一个已安装的软件;
##-q --scripts:列出是否含有安装后需要执行的脚本档,可用以 debug 喔!
#查询某个 RPM 文件内含有的信息:
##-qp[icdlR]:注意 -qp 后面接的所有参数以上面的说明一致。但用途仅在于找出某个 RPM 文件内的信息,而非已安装的软件信息;
# 查找是否安装 docker-ce 软件
# 不必要加上版本
$ rpm -q docker-ce
docker-ce-19.03.2-3.el7.x86_64
# 显示 docker-ce 软件所有目录与文件
$ rpm -ql docker-ce
/usr/bin/docker-init
/usr/bin/docker-proxy
/usr/bin/dockerd
/usr/lib/systemd/system/docker.service
/usr/lib/systemd/system/docker.socket
/var/lib/docker-engine/distribution_based_engine-ce.json
# 显示 docker-ce 说明资料
$ rpm -qi docker-ce
Name : docker-ce
Epoch : 3
Version : 19.03.2
Release : 3.el7
Architecture: x86_64
Install Date: Wed 21 Sep 2022 09:51:07 PM CST
Group : Tools/Docker
# 显示 docker-ce 配置文件
$ rpm -qc docker-ce
$ rpm -qd docker-ce
# 显示 docker-ce 以来
$ rpm -qR docker-ce
/bin/sh
container-selinux >= 2:2.74
containerd.io >= 1.2.2-3
device-mapper-libs >= 1.02.90-1
docker-ce-cli
# 显示 /bin/sh 由那个软件包提供的
$ rpm -qf /bin/sh
# 查看 RPM 文档
$ rpm -qpR filename.xxx.rpm
RPM 可选项参数
可下达的选项 | 代表意义 |
---|---|
--nodeps | 使用时机:当发生软件属性相依问题而无法安装,但你执意安装时 危险性: 软件会有相依性的原因是因为彼此会使用到对方的机制或功能,如果强制安装而不考虑软件的属性相依, 则可能会造成该软件的无法正常使用! |
--replacefiles | 使用时机: 如果在安装的过程当中出现了“某个文件已经被安装在你的系统上面”的信息,又或许出现版本不合的讯息 (confilcting files) 时,可以使用这个参数来直接覆盖文件。危险性: 覆盖的动作是无法复原的!所以,你必须要很清楚的知道被覆盖的文件是真的可以被覆盖喔!否则会欲哭无泪! |
--replacepkgs | 使用时机: 重新安装某个已经安装过的软件!如果你要安装一堆 RPM 软件文件时,可以使用 rpm -ivh *.rpm ,但若某些软件已经安装过了, 此时系统会出现“某软件已安装”的信息,导致无法继续安装。此时可使用这个选项来重复安装喔! |
--force | 使用时机:这个参数其实就是 --replacefiles 与 --replacepkgs 的综合体! |
--test | 使用时机: 想要测试一下该软件是否可以被安装到使用者的 Linux 环境当中,可找出是否有属性相依的问题。范例为: rpm -ivh pkgname.i386.rpm --test |
--justdb | 使用时机: 由于 RPM 数据库破损或者是某些缘故产生错误时,可使用这个选项来更新软件在数据库内的相关信息。 |
--nosignature | 使用时机: 想要略过数码签章的检查时,可以使用这个选项。 |
--prefix 新路径 | 使用时机: 要将软件安装到其他非正规目录时。举例来说,你想要将某软件安装到 /usr/local 而非正规的 /bin, /etc 等目录, 就可以使用“ --prefix /usr/local ”来处理了。 |
--noscripts | 使用时机:不想让该软件在安装过程中自行执行某些系统指令。说明: RPM 的优点除了可以将文件放置到定位之外,还可以自动执行一些前置作业的指令,例如数据库的初始化。 如果你不想要让 RPM 帮你自动执行这一类型的指令,就加上他吧! |
- RPM卸载软件&重建
# 卸载过程一定是由最上层删除到最下层的依赖, 否则容易出现错误
# 尝试卸载 pam 软件
$ rpm -qa | grep pam
$ rpm -e pam # 发现pam被kbd、sudo等依赖
error: Failed dependencies:
libpam.so.0()(64bit) is needed by (installed) kbd-1.15.5-15.el7.x86_64
libpam.so.0()(64bit) is needed by (installed) sudo-1.8.23-3.el7.x86_64
......
# 重建资料库
$ rpm --rebuilddb
- RPM 数字签名
# -Va: 列出目前系統上面所有可能被更動過的檔案;
$ rpm -Va
# -V: 後面加的是軟體名稱, 若該軟體所含的檔案被更動過, 才會列出來;
$ rpm -V 已安裝的軟體名稱
# -Vp: 後面加的是檔案名稱, 列出該軟體內可能被更動過的檔案;
$ rpm -Vp 某個 RPM 檔案的檔名
# -Vf: 列出某個檔案是否被更動過
$ rpm -Vf 在系統上面的某個檔案
# 查看 Docker-ce 是否被更改过
# 若无输出信息, 则表示没有文件被更改过
$ rpm -V docker-ce
# 查看 /etc/crontab 是否被修改过
$ rpm -Vf /etc/crontab
YUM
# YUM 安装流程(离线、在线都可安装软件)
- 配置网络(网络可通)
- 修改数据源
- 通过 yum install命令安装软件
# YUM options
- -y: 當 yum 要等待使用者輸入時, 這個選項可以自動提供 yes 的回應;
- --installroot=/some/path: 將該軟體安裝在 /some/path 而不使用預設路徑;
# YUM 常用查询命令
- search:
- info:
- list:
- provides:
# YUM 常用安装&升级命令
- install:
- groupinstall:
- update:
- YUM查询
# yum [list|info|search|provides|whatprovides] 參數
# 搜索 ifconfig 属于那个软件包
# yum search 命令行/软件包
$ yum search ifconfig
Loaded plugins: fastestmirror # yum 系統自己找出最近的 yum server
Loading mirror speeds from cached hostfile # 找出速度最快的那一部 yum server
* base: mirrors.ustc.edu.cn # 底下三個軟體庫,且來源為該伺服器!
* extras: mirrors.aliyun.com
* updates: mirrors.ustc.edu.cn
====================================================== Matched: ifconfig ======================================================
net-tools.x86_64 : Basic networking tools
# 查找 net-tools 功能介绍
# yum info 软件包
$ yum info net-tools
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
* base: mirrors.ustc.edu.cn
* extras: mirrors.aliyun.com
* updates: mirrors.ustc.edu.cn
Installed Packages
Name : net-tools
Arch : x86_64
Version : 2.0
Release : 0.25.20131004git.el7
Size : 917 k
Repo : installed
From repo : base
Summary : Basic networking tools
URL : http://sourceforge.net/projects/net-tools/
License : GPLv2+
Description : The net-tools package contains basic networking tools,
: including ifconfig, netstat, route, and others.
: Most of them are obsolete. For replacement check iproute package.
# 列出服务器所有软件名称
$ yum list
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
* base: mirrors.ustc.edu.cn
* extras: mirrors.aliyun.com
* updates: mirrors.ustc.edu.cn
Installed Packages # 已安装的软件
GeoIP.x86_64 1.5.0-13.el7 @anaconda
......
Available Packages # 可安装的其他软件
......
# 软件名称 版本 在那个软件库[base|extras|updates]中
# 列出可升级的软件
$ yum list updates
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
* base: mirrors.ustc.edu.cn
* extras: mirrors.aliyun.com
* updates: mirrors.ustc.edu.cn
base | 3.6 kB 00:00:00
docker-ce-stable | 3.5 kB 00:00:00
extras | 2.9 kB 00:00:00
updates | 2.9 kB 00:00:00
Updated Packages
# 列出提供 passwd 文件的软件有哪些
yum provides passwd
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
* base: mirrors.ustc.edu.cn
* extras: mirrors.aliyun.com
* updates: mirrors.ustc.edu.cn
passwd-0.79-6.el7.x86_64 : An utility for setting or changing passwords using PAM
Repo : base
passwd-0.79-4.el7.x86_64 : An utility for setting or changing passwords using PAM
Repo : @anaconda
- YUM 安装&升级
# 安装 pam-devel
$ yum install pam-devel
Loaded plugins: fastestmirror # 首先的 5 行在找出最快的 yum server
Loading mirror speeds from cached hostfile
* base: mirrors.ustc.edu.cn
* extras: mirrors.aliyun.com
* updates: mirrors.ustc.edu.cn
Resolving Dependencies # 接下来先处理依赖的软件问题
--> Running transaction check
---> Package pam-devel.x86_64 0:1.1.8-23.el7 will be installed
--> Finished Dependency Resolution
Dependencies Resolved
# 由上面的检查发现到 pam 这个软件也需要同步升级,这样才能够安装新版 pam-devel 喔!
# 至于下面则是一个总结的表格显示!
===============================================================================================================================
Package Arch Version Repository Size
===============================================================================================================================
Installing:
pam-devel x86_64 1.1.8-23.el7 base 185 k
Transaction Summary
===============================================================================================================================
Install 1 Package # 要安装软件数量是一个
Total download size: 185 k
Installed size: 528 k
Is this ok [y/d/N]: y
Downloading packages:
pam-devel-1.1.8-23.el7.x86_64.rpm | 185 kB 00:00:00
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
Installing : pam-devel-1.1.8-23.el7.x86_64 1/1
Verifying : pam-devel-1.1.8-23.el7.x86_64 1/1
Installed:
pam-devel.x86_64 0:1.1.8-23.el7
Complete!
- YUM 移除
$ yum remove pam-devel
YUM 其他配置
YUM 仓库配置
# YUM 仓库配置文件查看
$ vi /etc/yum.repos.d/CentOS-Base.repo
[base]
name=CentOS-$releasever - Base
mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=os&infra=$infra
#baseurl=http://mirror.centos.org/centos/$releasever/os/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
#released updates
[updates]
name=CentOS-$releasever - Updates
mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=updates&infra=$infra
#baseurl=http://mirror.centos.org/centos/$releasever/updates/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
#additional packages that may be useful
[extras]
name=CentOS-$releasever - Extras
mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=extras&infra=$infra
#baseurl=http://mirror.centos.org/centos/$releasever/extras/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
#additional packages that extend functionality of existing packages
[centosplus]
name=CentOS-$releasever - Plus
mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=centosplus&infra=$infra
#baseurl=http://mirror.centos.org/centos/$releasever/centosplus/$basearch/
gpgcheck=1
enabled=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
参数详情:
- name:只是说明一下这个软件库的意义而已,重要性不高!
- mirrorlist=:列出这个软件库可以使用的映射站台,如果不想使用,可以注解到这行;
- baseurl=:这个最重要,因为后面接的就是软件库的实际网址! mirrorlist 是由 yum 程序自行去捉映射站台, baseurl 则是指定固定的一个软件库网址!我们刚刚找到的网址放到这里来啦!
- enable=1:就是让这个软件库被启动。如果不想启动可以使用 enable=0 喔!
- gpgcheck=1:还记得 RPM 的数码签章吗?这就是指定是否需要查阅 RPM 文件内的数码签章!
- gpgkey=:就是数码签章的公钥档所在位置!使用默认值即可
YUM 仓库查看&清除
- 列出使用的软件库
$ yum repolist all
# 上面最右边有写 enabled 才是有启动的;
- 清除软件库数据
$ yum clean
YUM 群组功能
- 查询目前软件库与本机上安装过的软件群组
$ yum grouplist
Installed environment groups: # 已经安装的系统环境软件群组
Development and Creative Workstation
Available environment groups: # 还可以安装的系统环境软件群组
......
Installed groups: # 已经安装的软件群组!
Development Tools
Available Groups: # 还能额外安装的软件群组!
......
- 查看&安装软件群组
# 查看 GNOME Desktop 软件群组
$ yum groupinfo "GNOME Desktop"
# 安装 GNOME Desktop 软件群组
$ yum groupinstall "GNOME Desktop"
区别
定制化
Tarball:可定制性高、可任意指定自定义参数;如,安装路径、第三方插件、平台限制小等原因;
rpm:可定制性较低、可指定的自定义参数有限;
yum:可定制性低、可指定的自定义参数极其有限;
复杂性
Tarball:安装方式最为复杂,操作难度系数高,要求有一定的Linux知识;
rpm:安装方式较为复杂,操作难度相比于Tarball简单不少,要求有基础的Linux知识;
yum:安装方式最为简单,操作难度几乎没有,要求有简单的Linux知识;
推荐性
Tarball:在有一定运维基础的情况下最推荐这个,可控性强,可按照要求来安装&卸载;但是有一定难度,不建议新手上手;
rpm:不推荐这个,rpm解决依赖还是较为麻烦;有依赖问题、难度,不推荐新手使用;
yum:较为推荐;个人测试环境、不重要的软件可通过yum安装,简单快捷方便;
安装方式 | 定制化 | 复杂性 | 推荐性 |
---|---|---|---|
Tarball | ☆☆☆☆☆ | ☆☆☆☆☆ | ☆ |
rpm | ☆☆☆ | ☆☆☆ | ☆☆☆ |
yum | ☆ | ☆ | ☆☆☆☆☆ |