介绍

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

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

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

rpm

rpm包格式:

vim-common-7.4.10.5.el7.x86_64.rpm

分别对应着软件名称、软件版本、系统版本、平台,然后以.rpm作为结尾。注意系统版本 el7 表示支持7版本的Linux系统,x86_64表示64位的平台系统

rpm命令

使用方法:rpm [参数]

常用参数:

  • -a: 查询所有套件

  • -c: 只列出组态配置文件,本参数需配合”-l”参数使用

  • -d: 只列出文本文件,本参数需配合”-l”参数使用

  • -e<软件包>: 删除指定的软件

  • -f<文件>+: 查询拥有指定文件的套件

  • -i<软件包>: 安装指定的软件包

  • -l: 显示套件的文件列表

  • -p<软件包>+: 查询指定的RPM套件档

  • -q: 使用询问模式,当遇到任何问题时,rpm指令会先询问用户

查询安装的软件包

使用示例:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
# 查询所有安装的软件包
[root@iZm5ehzqow4ijp2ya2g2drZ ~]# rpm -qa
vim-common-7.4.629-5.el6_8.1.x86_64
setup-2.8.14-23.el6.noarch
tcpdump-4.0.0-11.20090921gitdf3cb4.2.el6.x86_64
basesystem-10.0-4.el6.noarch
...

# 显示内容太多还可以分页显示,命令如下:
rpm -qa | more
使用管道符加 more 即可实现 more 命令的翻页效果

# 查询是否安装指定的软件包:使用-q参数,后面跟上要查询的软件包名称
[root@iZm5ehzqow4ijp2ya2g2drZ ~]# rpm -q vim-common
vim-common-7.4.629-5.el6_8.1.x86_64

安装软件包

使用示例:

1
2
3
4
# 主要是使用 -i 参数
[root@iZm5ehzqow4ijp2ya2g2drZ ~]# rpm -i vim-enhanced-7.4.160-5.el7.x86_64.rpm

# 注意很多时候我们安装软件包的时候回安装失败,错误信息为安装此安装包需要依赖另一个软件,这时我们需要先安装依赖的软件包

卸载已安装的软件包

使用示例:

1
2
3
4
5
6
7
# 主要是使用 -e 参数
[root@iZm5ehzqow4ijp2ya2g2drZ ~]# rpm -e vim-enhanced
注意:在删除安装的软件包时不需要指定软件包的全限定名称,只需要指定名称即可

# 删除多个软件包
[root@iZm5ehzqow4ijp2ya2g2drZ ~]# rpm -e vim-enhanced vim—common
使用空格分开继续追加软件即可

yum

yum概述及配置

yum包管理器或yum仓库,它的出现是为了解决 rpm 包存在的问题:

  1. 需要自己解决依赖关系

  2. 如果我们要使用光盘中的rpm包,需要将整个光盘挂载到Linux当中,甚至如果没有光盘需要将整个光盘的iso镜像下载回来,以及软件包来源不可靠

CentOS yum源地址:

http://mirror.centos.org/centos/7/

国内镜像:

https://opsx.alibaba.com/mirror

使用国内镜像有两种配置方式,第一种,需要修改yum的配置文件,修改文件如下:

  • /etc/yum.repos.d/CentOS-Base.repo
1
2
3
4
5
6
7
[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-6

base表示基础应用的包,baseurl表示基础应用的rpm包放在哪一个源路径下,gpgcheck检测yum源软件包有没有被人恶意修改,是否为最开始发布的软件包的内容,防止被添加入木马

第二种方式,备份我们系统中yum配置文件,然后至镜像网站查询对应的OS版本的配置文件下载的地址 wget 命令,执行此 wget 命令后,就将原来的配置文件覆盖掉,之后运行 yum makecache 命令,生成缓存,让软件包指向我们要指向的开源的镜像站

使用 yum makecache 命令,可以把之前的缓存清空,然后通过网络把新的版本的软件包,配置等下载回来,然后更新,注意更新的过程不要中断

yum命令

安装软件包

使用yum安装软件可以自动检测软件包的依赖,并将依赖也下载安装,使用示例如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
# 首先卸载 vim-enhanced 和 vim-common 这两个软件包
[root@iZm5ehzqow4ijp2ya2g2drZ yum.repos.d]# rpm -e vim-enhanced
[root@iZm5ehzqow4ijp2ya2g2drZ yum.repos.d]# rpm -e vim-common

# 然后使用 yum install 命令安装 vim-enhanced 软件包
# 安装时我们发现它自动检测的安装 vim-enhanced 包的依赖关系,并将两个软件包同时进行安装
[root@iZm5ehzqow4ijp2ya2g2drZ yum.repos.d]# yum install vim-enhanced
...
Dependencies Resolved

===============================================================================================================================================================================
Package Arch Version Repository Size
===============================================================================================================================================================================
Installing:
vim-enhanced x86_64 2:7.4.629-5.el6_10.2 updates 1.0 M
Installing for dependencies:
vim-common x86_64 2:7.4.629-5.el6_10.2 updates 6.7 M

Transaction Summary
===============================================================================================================================================================================
Install 2 Package(s)

卸载软件包

卸载软件包使用的是 yum remove 命令,使用如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
# 删除与 vim 相关的软件包
[root@iZm5ehzqow4ijp2ya2g2drZ yum.repos.d]# yum remove vim

# 会提示有哪些与vim相关的软件包
Dependencies Resolved

===============================================================================================================================================================================
Package Arch Version Repository Size
===============================================================================================================================================================================
Removing:
vim-enhanced x86_64 2:7.4.629-5.el6_10.2 @updates 2.2 M

Transaction Summary
===============================================================================================================================================================================
Remove 1 Package(s)

查看软件包

可以使用 yum list 命令来查看我们已经安装了哪些软件包,使用如下:

1
2
3
4
5
6
7
[root@iZm5ehzqow4ijp2ya2g2drZ yum.repos.d]# yum list
...
zvbi.i686 0.2.35-1.el6 epel
zvbi.x86_64 0.2.35-1.el6 epel
zvbi-devel.i686 0.2.35-1.el6 epel
zvbi-devel.x86_64 0.2.35-1.el6 epel
zvbi-fonts.noarch 0.2.35-1.el6 epel

还可以使用 yum list package1 查看指定的软件包的安装情况,使用如下:

1
2
3
4
5
[root@iZm5ehzqow4ijp2ya2g2drZ yum.repos.d]# yum list vim-common
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
Installed Packages
vim-common.x86_64 2:7.4.629-5.el6_10.2 @updates

升级软件包

升级软件包是一个非常重要的命令,因为我们在生产环境中安装的软件可能多多少少会出现一些bug或安全漏洞,这就需要我们定期的给软件进行一定的升级,那么如何升级呢,我们就需要使用 yum update 软件包名 命令来升级指定的软件包,如果我们不加软件包名,就会对当前所有的安装的软件包进行升级,注意:并不是直接升级,是会有提示的

使用如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
# 检查所有需要升级的软件并选择是否升级
Dependencies Resolved

===============================================================================================================================================================================
Package Arch Version Repository Size
===============================================================================================================================================================================
Installing:
kernel x86_64 2.6.32-754.18.2.el6 updates 32 M
Updating:
binutils x86_64 2.20.51.0.2-5.48.el6_10.1 updates 2.8 M
ca-certificates noarch 2018.2.22-65.1.el6 base 930 k

Transaction Summary
===============================================================================================================================================================================
Install 1 Package(s)
Upgrade 57 Package(s)

Total download size: 113 M
Is this ok [y/N]:

# 这里提示有57个软件包需要进行升级,我们出入 y 之后,既开始升级

# 升级指定的软件包
[root@iZm5ehzqow4ijp2ya2g2drZ yum.repos.d]# yum update vim-filesystem
Dependencies Resolved

===============================================================================================================================================================================
Package Arch Version Repository Size
===============================================================================================================================================================================
Updating:
vim-filesystem x86_64 2:7.4.629-5.el6_10.2 updates 15 k

Transaction Summary
===============================================================================================================================================================================
Upgrade 1 Package(s)

Total download size: 15 k
Is this ok [y/N]:

通过源代码编译安装软件包

有些时候我们在安装或升级软件包时,发现官网并没有直接可以安装的软件包,既不可以通过 yum 命令直接安装,只提供了压缩源代码软件包,这时我们就需要自己来编译此源代码来进行安装

注意,此种情况比较少,且安装比较麻烦,如果 yum 或 rpm 可以直接安装的话,尽量不要通过此种方式

安装示例

我们将通过安装一个 openresty 源代码包来作为示例,具体步骤如下:

  1. 下载源代码包

使用命令 wget https://openresty.org/download/openresty-1.15.8.1.tar.gz

1
2
3
4
5
6
7
root@iZm5ehzqow4ijp2ya2g2drZ ~]# wget https://openresty.org/download/openresty-1.15.8.1.tar.gz
--2019-09-07 17:03:16-- https://openresty.org/download/openresty-1.15.8.1.tar.gz
...
2019-09-07 17:03:17 (34.3 MB/s) - “openresty-1.15.8.1.tar.gz” saved [4904182/4904182]

[root@iZm5ehzqow4ijp2ya2g2drZ ~]# ll
-rw-r--r-- 1 root root 4904182 May 17 05:34 openresty-1.15.8.1.tar.gz
  1. 解压此源代码包

tar -zxvf openresty-VENSION.tar.gz

1
2
3
4
5
6
[root@iZm5ehzqow4ijp2ya2g2drZ ~]# tar -zxvf openresty-1.15.8.1.tar.gz 

[root@iZm5ehzqow4ijp2ya2g2drZ ~]# ls -lh
total 53M
drwxrwxr-x 5 1000 1003 4.0K May 17 05:27 openresty-1.15.8.1
-rw-r--r-- 1 root root 4.7M May 17 05:34 openresty-1.15.8.1.tar.gz
  1. 进入解压好的文件夹,然后进行编译源代码
1
2
3
4
5
6
7
8
9
[root@iZm5ehzqow4ijp2ya2g2drZ openresty-1.15.8.1]# ls -lh
total 108K
drwxrwxr-x 46 1000 1003 4.0K May 17 05:27 bundle
-rwxrwxr-x 1 1000 1003 52K May 17 05:27 configure
-rw-rw-r-- 1 1000 1003 23K May 17 05:27 COPYRIGHT
drwxrwxr-x 2 1000 1003 4.0K May 17 05:27 patches
-rw-rw-r-- 1 1000 1003 4.6K May 17 05:27 README.markdown
-rw-rw-r-- 1 1000 1003 8.8K May 17 05:27 README-windows.txt
drwxrwxr-x 2 1000 1003 4.0K May 17 05:27 util

我们发现 configure 是一个绿色的文件,并且是一个可执行的文件,一般情况下我们下载下源代码编译好后,都是通过 makemake install 命令来安装源代码,所以在我们解压源代码后就进入目录看看是否有类似于此示例中 configure 这样的可执行文件,如果没有的话,可以阅读源码包中的README文件,来查看具体的安装编译方法

接下来就是执行此可执行文件,注意:一般在执行此可执行程序时,我们都会指定它的安装目录,使用 –prefix 参数执行即可,指定完目录之后就意味着之后安装程序全都是在这个指定的目录下

1
2
3
4
5
6
7
8
[root@iZm5ehzqow4ijp2ya2g2drZ openresty-1.15.8.1]# ./configure --prefix=/usr/local/openresty

==== Building LuaJIT 2.1.0-beta3 ====
gmake -C src
gmake[1]: cc: Command not found
...
gmake: *** [default] Error 2
ERROR: failed to run command: gmake TARGET_STRIP=@: CCDEBUG=-g XCFLAGS='-DLUAJIT_ENABLE_LUA52COMPAT -DLUAJIT_ENABLE_GC64' CC=cc PREFIX=/usr/local/openresty/luajit

执行之后我们发现有报错信息,这时候我们就需要解决此报错,此报错说 cc 命令找不到,既没有安装 gcc 软件包,那我们使用 yum 命令安装即可

1
2
3
4
[root@iZm5ehzqow4ijp2ya2g2drZ openresty-1.15.8.1]# yum install gcc
Loaded plugins: fastestmirror
Setting up Install Process
...

安装完成之后我们发现再次执行发现可以执行了,但是还是执行失败,失败报错缺少 PCRE 这个库,这时候我们还需要安装这个库

1
2
3
4
5
6
7
8
9
10
[root@iZm5ehzqow4ijp2ya2g2drZ openresty-1.15.8.1]# ./configure --prefix=/usr/local/openresty
platform: linux (linux)
cp -rp bundle/ build
...
./configure: error: the HTTP rewrite module requires the PCRE library.
You can either disable the module by using --without-http_rewrite_module
option, or install the PCRE library into the system, or build the PCRE library
statically from the source with nginx by using --with-pcre=<path> option.

ERROR: failed to run command: sh ./configure --prefix=/usr/local/openresty/nginx \...

通过 yum 安装 PCRE 这个库,安装示例:

1
2
3
4
[root@iZm5ehzqow4ijp2ya2g2drZ openresty-1.15.8.1]# yum install pcre-devel
Loaded plugins: fastestmirror
Setting up Install Process
...

安装完成后再次执行此可执行文件,发现还是报错,说缺少 OpenSSL这个库:

1
2
3
4
5
6
7
8
[root@iZm5ehzqow4ijp2ya2g2drZ openresty-1.15.8.1]# ./configure --prefix=/usr/local/openresty
...
./configure: error: SSL modules require the OpenSSL library.
You can either do not enable the modules, or install the OpenSSL library
into the system, or build the OpenSSL library statically from the source
with nginx by using --with-openssl=<path> option.

ERROR: failed to run command: sh ./configure --prefix=/usr/local/openresty/nginx \...

通过 yum 安装 OpenSSL 这个库

1
2
3
4
5
[root@iZm5ehzqow4ijp2ya2g2drZ openresty-1.15.8.1]# yum install openssl-devel
Loaded plugins: fastestmirror
Setting up Install Process
Loading mirror speeds from cached hostfile
...

上述示例中:-devel表示的都是开发库

安装完成后再次执行此文件,发现终于可以执行成功了

1
2
3
4
5
6
7
8
root@iZm5ehzqow4ijp2ya2g2drZ openresty-1.15.8.1]# ./configure --prefix=/usr/local/openresty
platform: linux (linux)
cp -rp bundle/ build
...
cd ../..
Type the following commands to build and install:
gmake
gmake install

执行完成后我们发现终于给了提示,说可以使用 gmake 和 gmake install 进行编译安装此软件包

通常我们都是使用 make 和 make install 进行编译安装,这是提示使用 gmake 和 gmake install,gmake 和 gmake install 是方便我们跨平台的进行编译安装的命令,所以我们这里使用 gmake 和 gmake install 这两个命令进行编译安装,此两种命令都可以使用

  1. 编译

首先使用 gmake 编译此源码包,可以使用 -j2 参数进行指定使用两个cpu进行编译,效率会更快

1
2
3
4
5
6
7
[root@iZm5ehzqow4ijp2ya2g2drZ openresty-1.15.8.1]# gmake -j2
...
gmake[2]: Leaving directory `/root/openresty-1.15.8.1/build/nginx-1.15.8'
gmake[1]: Leaving directory `/root/openresty-1.15.8.1/build/nginx-1.15.8'

[root@iZm5ehzqow4ijp2ya2g2drZ openresty-1.15.8.1]# ls
build bundle configure COPYRIGHT Makefile patches README.markdown README-windows.txt util

编译完成之后,我们发现源代码目录文件中多了一个 build 文件夹,这里面就存放了编译之后的文件及配置文件

  1. 安装

使用 gmake install 命令,将 build 文件中的所有文件都安装到我们之前指定的目录中

注意还是在原来的目录中,不需要进去其他目录

1
2
3
4
5
[root@iZm5ehzqow4ijp2ya2g2drZ openresty-1.15.8.1]# gmake install
cd /root/openresty-1.15.8.1/build/LuaJIT-2.1-20190507 && gmake TARGET_STRIP=@: CCDEBUG=-g XCFLAGS='-std=gnu99 -DLUAJIT_ENABLE_LUA52COMPAT -DLUAJIT_ENABLE_GC64 -msse4.2' CC=cc PREFIX=/usr/local/openresty/luajit
...
mkdir -p /usr/local/openresty/site/lualib /usr/local/openresty/site/pod /usr/local/openresty/site/manifest
ln -sf /usr/local/openresty/nginx/sbin/nginx /usr/local/openresty/bin/openresty

执行完成后,就已经安装完成了,可以查看我们之前的指定目录,查看安装后的文件内容

1
2
3
4
5
6
7
8
9
10
root@iZm5ehzqow4ijp2ya2g2drZ openresty-1.15.8.1]# ll /usr/local/openresty/
total 272
drwxr-xr-x 2 root root 4096 Sep 7 18:20 bin
-rw-r--r-- 1 root root 22924 Sep 7 18:20 COPYRIGHT
drwxr-xr-x 6 root root 4096 Sep 7 18:20 luajit
drwxr-xr-x 6 root root 4096 Sep 7 18:20 lualib
drwxr-xr-x 6 root root 4096 Sep 7 18:20 nginx
drwxr-xr-x 47 root root 4096 Sep 7 18:20 pod
-rw-r--r-- 1 root root 226376 Sep 7 18:20 resty.index
drwxr-xr-x 5 root root 4096 Sep 7 18:20 site

只有再安装完成后,才可以看到此目录及文件,这样就完成了通过源代码安装软件啦

内核升级

uname命令

Linux uname命令用于显示系统信息,uname可显示电脑以及操作系统的相关信息

使用方式:uname [选项]

参数说明

  • -a 显示全部的信息

  • -m 显示电脑类型

  • -n 显示在网络上的主机名称

  • -r 显示操作系统的发行编号

  • -s 显示操作系统名称

  • -v 显示操作系统的版本

使用示例:

1
2
[root@iZm5ehzqow4ijp2ya2g2drZ balyu]# uname -a
Linux iZm5ehzqow4ijp2ya2g2drZ 2.6.32-696.16.1.el6.x86_64 #1 SMP Wed Nov 15 16:51:15 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux

df命令

Linux df命令用于显示目前在Linux系统上的文件系统的磁盘使用情况统计

使用方法: df [选项]

参数说明

  • -h -human-readable 使用人类可读的格式(预设值是不加这个选项的…)

  • -t -type=TYPE 限制列出文件系统的 TYPE

  • -i 输出显示inode信息而非块使用量

使用示例:

1
2
3
4
[root@iZm5ehzqow4ijp2ya2g2drZ boot]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/vda1 40G 2.4G 35G 7% /
tmpfs 499M 0 499M 0% /dev/shm

lscpu命令

查看当前主机CPU状况的命令,使用示例:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
[root@iZm5ehzqow4ijp2ya2g2drZ balyu]# lscpu
Architecture: x86_64
CPU op-mode(s): 32-bit, 64-bit
Byte Order: Little Endian
CPU(s): 1
On-line CPU(s) list: 0
Thread(s) per core: 1
Core(s) per socket: 1
Socket(s): 1
NUMA node(s): 1
Vendor ID: GenuineIntel
CPU family: 6
Model: 85
Model name: Intel(R) Xeon(R) Platinum 8163 CPU @ 2.50GHz
Stepping: 4
CPU MHz: 2500.006
BogoMIPS: 5000.01
Hypervisor vendor: KVM
Virtualization type: full
L1d cache: 32K
L1i cache: 32K
L2 cache: 1024K
L3 cache: 33792K
NUMA node0 CPU(s): 0

top命令

类似于Windows的任务管理器,使用示例:

1
2
3
4
5
6
7
8
9
10
11
12
13
[root@iZm5ehzqow4ijp2ya2g2drZ balyu]# top
top - 15:03:02 up 7 days, 5:18, 2 users, load average: 0.00, 0.00, 0.00
Tasks: 79 total, 1 running, 78 sleeping, 0 stopped, 0 zombie
Cpu(s): 0.3%us, 0.3%sy, 0.0%ni, 99.0%id, 0.3%wa, 0.0%hi, 0.0%si, 0.0%st
Mem: 1019980k total, 705416k used, 314564k free, 131904k buffers
Swap: 0k total, 0k used, 0k free, 209692k cached

PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
1407 root 10 -10 121m 11m 9176 S 0.3 1.2 30:52.20 AliYunDun
1 root 20 0 19228 1500 1232 S 0.0 0.1 0:00.71 init
2 root 20 0 0 0 0 S 0.0 0.0 0:00.00 kthreadd
3 root RT 0 0 0 0 S 0.0 0.0 0:00.00 migration/0
4 root 20 0 0 0 0 S 0.0 0.0 0:00.62 ksoftirqd/0

可以看到能查询到CPU及内存等的使用状态,以及当前进程等

扩展软件仓库

很多时候我们发现CentOS默认提供的软件仓库中并没有我们需要的软件,或者软件版本没有一些最新的,比如下面我们要说的内核,这时候我们就需要去别的仓库去找,所以这里我们介绍扩展软件仓库

一般比较流行的软件仓库是 epel 仓库,我们只需要通过命令来安装这个仓库即可,命令如下:

1
yum install epel-release -y

升级内核

以上我们已经知道了如何查看自己主机当前的内核版本,现在我们就可以对它进行升级了

使用yum命令升级

第一种方式是指定内核的版本进行升级,我们可以去内核的官网查看我们需要升级的内核版本,然后使用yum命令进行升级,具体命令如下:

1
yum install kernel-3.10.0

注意上面我们只使用 yum install kernel 命令,不指定具体的版本号的时候,yum就会去仓库寻找最新的 kernel 版本来进行安装

第二种方式是自动进行升级,它可以直接对我们所有安装的软件及内核进行版本检测,检测到有最新版本的话就会自动升级,具体使用如下:

1
yum update

使用源代码编译方式安装升级

  1. 源代码编译的方式比较复杂,上面我们已经说过了,需要解决各种各样的依赖,以下是大神总结出来的所有的依赖:
1
2
安装依赖包
yum install gcc gcc-c++ make ncurses-devel openssl-devel elfutils-libelf-devel
  1. 接下来需要下载并解压缩内核软件包,下载地址:www.kernel.org,选择好我们要安装的内核版本并下载,然后解压缩就可以安装了

  2. 配置内核编译参数

配置内核编译参数和我们上述介绍的./configure不一样,需要进入到内核的软件包指定目录中,然后使用 make 命令来配置。具体如下:

1
2
cd /usr/src/kernals/linux-5.1.1.0/
make menuconfig | allyelsconfig | allnoconfig

上述介绍的 ./configure 是有很多的自动化配置在里面,但是我们在安装内核的时候,这些配置都需要我们自己手动来完成,所以这里需要使用 make – 命令来进行配置:

make menuconfig 我们自己来根据弹出的菜单选项来进行配置

make allyelconfig 无脑设置,既有的功能全部都配置上

make allnoconfig 无脑设置,既什么功能都不配置,这样有可能会出现什么都不安装,导致安装后启动都启动不了

我们还可以使用当前的系统配置来进行配置,这里只需要将我们原先内核的配置文件拷贝到软件包的指定目录下,并且重命名为 .config 就可以使用原来内核的配置,这样就可以减少我们配置的复杂度,具体命令如下:

1
cp /boot/config-kernelversion.platfrom /uer/src/kernels/linux-5.1.10/.config

注意上述命令示例中 kernelversion.platfrom 是需要替换成我们本地的文件,形式:config-2.6.32-696.16.1.el6.x86_64

  1. 编译

编译软件包与上述源代码编译一样,使用make命令直接编译即可,如下:

1
make -j2 all
  1. 安装

安装与上述源代码安装不一样,多了一个步骤,我们在安装内核的时候需要先安装内核所支持的模块,然后再安装内核,具体命令如下:

1
2
3
make modules_install

make install

这里我们就将内核安装升级完成了

grub配置文件

升级完内核时我们需要设置启动引导软件来设置默认的内核,CentOS7使用的是gurb2版本,CentOS使用的是一版本,在一版本中,我们什么样的配置都需要自己手动去编辑,而且需要向设置网卡一样,记住每一项的功能,而二版本给我们提供了很多方便的工具,我们需要修改配置的时候只需要通过命令修改即可。所以grub2版本就不需要我们去背每一个设置项及内容了。

配置文件具体说明

配置文件所在的位置:/boot/grub2/grub.cfg,由于grub2程序的特性,我们一般不要去直接编辑此文件,因为此文件可以说是一个内存级的配置文件,如果我们再通过一些其他的手段去修改了默认的配置,那么我们的的编辑就会丢失及消失

所以我们通常如果想要修改配置,会去修改:/etc/default/grub 这个文件,这个是一些基本的配置的配置文件,如果我们想修改更为详细的配置,我们可以去:/etc/grud.d/ 此文件目录下的一些其他的配置文件,此文件是从 00、01 … 等一直向后排序的

当我们修改完成后,通过命令:grub2-mkconfig-o /boot/gurb2/grub.cfg 就可以产生新的配置文件了

/etc/default/grub这个文件是修改默认的一些设置,这里面一般我们只需要关注两个配置项即可:

  1. GRUB_DEFAULT=saved
  2. GRUB_CMDLINE_LINUX=”rd.lvm.lv=centos/root rd.lvm.lv=centos/swap rhgb quiet biosde vname=0 net.ifnames=0”

修改默认启动引导内核

当我们需要修改默认的启动引导内核,就需要依赖上述第一项,我们需要通过命令:grub2-editenv list 能查看到当前系统启动的引导内核是什么版本的, 然后我们需要通过命令:grub2 ^menu /boot/default/grub 来查看当前我们系统中安装了哪些内核版本及顺序,我们找到所有以 menuentry 开头的行,它后边包含的内容就是我们安装的内核版本信息,我们需要找到我们需要修改的内核的顺序,第一个从0开始,然后记录。然后我们通过命令:grub2-set-default 顺序编号 来设置我们默认的系统引导内核。

当修改完成后,我们再来通过 grub2-editenv list 命令查看当前系统启动引导内核时,发现就成为了我们设置的内核(saved_entry=顺序编号),这时我们重新启动电脑,发现重启后默认的启动内核就变成了我们所设置的内核

启动项配置

上述描述中第二项就是我们需要关注的,修改网卡名称所要用到的一项,此项中我们经常需要修改的是两个项:

1
GRUB_CMDLINE_LINUX="rd.lvm.lv=centos/root rd.lvm.lv=centos/swap rhgb quiet biosde vname=0 net.ifnames=0"

上述中rhgb:此项表示引导的时候使用一个图形界面,我们看到启动时的进度条,也是当启动出现问题的将此项去掉已查看启动时更为详细的信息

上述中quiet:此项为静默模式,表示引导的时候只是打印一些必要的消息,当我们发现启动出现异常的时候,我们会将此项去掉,已打印更为全面的消息来定位问题

最后更新: 2019年10月06日 16:22

原始链接: https://jjw-story.github.io/2019/08/25/软件包管理器/

× 请我吃糖~
打赏二维码