3.4 软件安装

3.4 软件安装 #

3.4.1 软件包管理器 #

包管理器是方便软件安装、卸载,解决软件依赖关系的重要工具。

  • CentOS、RedHat 使用 yum 包管理器,软件安装包格式为 rpm。
  • Debian、Ubuntu 使用 apt 包管理器,软件安装包格式为 deb。

3.4.2 rpm 包和 rpm 命令 #

包格式 #

命令常用参数 #

  • -q 查询软件包,-qa 查看所有。
rpm -qa
  • -i 安装软件包

  • -e 卸载软件包

问题 #

使用 rpm 时需要手动解决依赖关系,在实际应用中用的不多,常用 yum 命令安装。软件包来源不可靠。

3.4.3 yum 仓库 #

修改 yum 源 #

阿里巴巴官方镜像站 https://developer.aliyun.com/mirror/

经常需要安装 epel 来扩展 yum 仓库源,不常见的一些软件可以通过 epel 仓库来安装:

yum install epel-release -y

常用选项 #

  • install 安装软件包
  • remove 卸载软件包
  • list | grouplist 查看软件包
  • update 升级软件包

yum update 如果加上软件包名会去升级指定的软件,如果什么都不加会去升级所有的软件包。

3.4.4 源代码编译安装 #

有时 yum 源中没有最新的软件包,这时可以通过源代码编译安装的方式。

以下通过编译安装 openresty 示例:

wget https://openresty.org/download/openresty-1.15.8.1.tar.gz ## 下载

tar -zxf openresty-1.15.8.1.tar.gz

cd openresty-1.15.8.1/

./configure --prefix=/usr/local/openresty ## prefix 指定安装目录

make -j2 # -j2 使用 2 个逻辑 CPU 进行编译,如果代码之间没有一定的依赖关系一般会加快编译速度

make install

安装过程中可能需要 gcc 和 c++,需要提前安装下:

yum install gcc gcc-c++

如果遇到以下错误:

./configure: error: the HTTP rewrite module requires the PCRE library

需要安装下 pcre

yum install pcre-devel

如果遇到以下错误

 error: SSL modules require the OpenSSL library

需要安装下 openssl

yum -y install openssl openssl-devel

通过安装 openresty 可知,在安装过程中需要手动去解决依赖关系,而且经常不能一次性的去解决,往往需要通过经验和 google 才能解决问题,这也是源代码编译安装不太流行的原因。

3.4.5 内核升级 #

查看内核版本可以使用 uname -r

yum 方式 #

uname -r

yum update # 升级已安装的其他软件包和补丁

yum install kernel-3.10.0 # 升级内核版本

源代码方式 #

源代码方式并不推荐,因为不会自动解决依赖关系,需要手动去解决。编译内核根分区至少要有 10G 的空间,如果小于 10G 可能会出现安装失败的情况。

# 1. 安装依赖包
yum install gcc gcc-c++ make ncurses-devel openssl-devel elfutils-libelf-devel -y

# 2. 去官方网站下载并解压缩内核 https://www.kernel.org
# 可以在 https://mirrors.edge.kernel.org/pub/linux/kernel/ 这里找到需要的版本
wget https://mirrors.edge.kernel.org/pub/linux/kernel/v5.x/linux-5.1.10.tar.xz
tar xvf linux-5.1.10.tar.xz -C /usr/src/kernels

# 3. 配置内核编译参数(可选),可以直接使用当前系统的配置,参看 4
cd /usr/src/kernels/linux-5.1.10/
make menuconfig | allyesconfig | allnoconfig # make menuconfig allyesconfig 所有我都选 yes..

# 4. 使用当前系统内核配置
cp /boot/config-kernelversion.platform /usr/src/kernels/linux-5.1.10/.config # kernelversion 内核版本 platform 平台,比如 config-3.10.0-957.el7.x86_64

# 5. 查看CPU
lscpu

# 6. 编译
make -j2 all

# 7. 安装内核
make modules_install
make install

安装成功后 reboot 重启引导使用新内核启动即可。

3.4.6 grub 配置文件 #

grub 全称 “Grand unified bootloader”,是 GNU 项目的一个启动加载包。grub 的作用就是负责加载所选择的内核,当有多个系统内核时,可以手动选择要启动的系统,在 grub 图形界面上有多系统选项菜单。

  • /etc/default/grub 模板的一些配置
  • /etc/grub.d/ 在这个文件夹下有写高级配置
  • /boot/grub2/grub.cfg 不直接编辑,通过命令生成
grub2-mkconfig -o /boot/grub2/grub.cfg

常见配置项 #

  1. 引导内核
grub2-editenv list # 查看当前引导内核

grep ^menu /boot/grub2/grub.cfg # 查看有几个内核版本

grub2-set-default X # 设置引导内核,X 从 0 开始
  1. 查看错误信息

当内核引导出现问题时,可以把 GRUB_CMDLINE_LINUX 配置中的rhgb quiet参数去掉,让打印出更详细的信息。

参考 #