首页 > 系统相关 >CentOS 8 安装笔记

CentOS 8 安装笔记

时间:2023-12-28 15:06:48浏览次数:38  
标签:CentOS nmcli 笔记 etc yum swap install 安装


CentOS 8 安装笔记

作者主页:sysin.org

第一部分 概述

初始版本:CentOS 8.0.1905

继 RHEL 8 发布之后,CentOS 社区也发布了让人期待已久的 CentOS 8,并发布了两种模式:

  • CentOS stream:滚动发布的 Linux 发行版,适用于需要频繁更新的开发者
  • CentOS:类似 RHEL 8 的稳定操作系统,系统管理员可以用其部署或配置服务和应用

CentOS 8 系列只有 64 位系统,没有 32 位。

CentOS-8-x86_64-1905-boot.iso                      16-Aug-2019 05:22    534M
CentOS-8-x86_64-1905-boot.iso.manifest             16-Aug-2019 05:23     626
CentOS-8-x86_64-1905-boot.torrent                  24-Sep-2019 04:51     21K
CentOS-8-x86_64-1905-dvd1.iso                      16-Aug-2019 05:59      7G
CentOS-8-x86_64-1905-dvd1.iso.manifest             16-Aug-2019 05:59    401K
CentOS-8-x86_64-1905-dvd1.torrent                  24-Sep-2019 04:52    266K

由于首个版本没有提供类似于 CentOS 7 的 Minimal 版本,这里使用 CentOS-8-x86_64-1905-boot.iso 进行安装,安装过程中选择 Minimal 安装,不过需要指定 repo 地址。

更新:CentOS 8.2.2004 终于增加了 Minimal iso。

因 CentOS 8 生命周期已于 2021.12.31 终结,本文更新加入了 AlmaLinux 8、Rocky Linux 8 的内容,笔者在后续文章尽量以 RHEL 8 兼容发行版 或者 RHEL 8 系列 来概称这集中发行版,因为它们是二进制兼容的发行版,仅仅在某些软件包名称和少量配置上略有差异。

1. CentOS 8 的新特性

  • DNF 成为了默认的软件包管理器,同时 yum 仍然是可用的
  • 使用网络管理器(nmclinmtui)进行网络配置,移除了网络脚本
  • 使用 Podman 进行容器管理
  • 引入了两个新的包仓库:BaseOS 和 AppStream
  • 使用 Cockpit 作为默认的系统管理工具
  • 默认使用 Wayland 作为显示服务器
  • iptables 将被 nftables 取代
  • 使用 Linux 内核 4.18
  • 动态编程语言、Web 和数据库服务器
  • Python 3.6 是默认的 Python 环境,有限支持 Python 2.7
  • Node.js 是在 RHEL 最新包含的,其他动态语言更新包括: PHP 7.2Ruby 2.5Perl 5.26SWIG 3.0
  • RHEL 8 提供的数据库服务包括:MariaDB 10.3MySQL 8.0PostgreSQL 10PostgreSQL 9.6,和 Redis 5
  • RHEL 8 提供 Apache HTTP Server 2.4 以及首次引入的, nginx 1.14
  • Squid 版本升级到 4.4 ,同时也首次提供 Varnish Cache 6.0

2. 版本历史

RHEL 8

CentOS Linux 8

AlmaLinux 8

Rocky Linux 8

RHEL Source Version

Release (YYMM)

Based on RHEL Source (Version)

Based on RHEL Source (Version)

8.0

8.0.1905/

N/A

N/A

8.1

8.1.1911/

N/A

N/A

8.2

8.2.2004/

N/A

N/A

8.3

8.3.2011/

8.3

N/A

8.4

8.4.2105/

8.4

8.4

8.5

8.5.2111/

8.5

8.5

8.6 - 2022.05

EoL

8.6

8.6

3. 安装要点

详细步骤参看 CentOS 8 安装截图,这里列出几个注意点。

推荐使用 Minimal 安装介质(8.0 和 8.1 未发布 Minimal iso)。

先配置网络,否则某些项目无法配置。

  • Network & Hostname:点击 OFF 按钮为 ON,点击 Configure… 按钮,General 页面注意勾选 “Connect automatically with priority”,根据需要手动配置 IP 地址和 DNS。
  • Keyboard:默认 English (US)。
  • Language Support:下拉到最下面 “中文”,勾选 “简体中文” 和两个 “繁体中文”。
  • Time & Date:点选 Asia/Shanghai,Network Time 自动 ON(前面先配置了网络)。
  • Installation Source:如果是 Minimal 或者 DVD 介质,默认是 Local media。
    如果是 boot 安装介质,配置网络后自动修改为 Cloest mirror,也可以根据需要手动指定,比如可以使用 163 或者阿里云镜像:
    https://mirrors.aliyun.com/CentOS/8/BaseOS/x86_64/os/https://mirrors.163.com/CentOS/8/BaseOS/x86_64/os/如果已经发布新版,安装旧版需要使用手动填写 vault 地址:https://vault.centos.org/8.0.1905/BaseOS/x86_64/os/,URL Type 为 repository URL。
  • Software Selection:Minimal Install,请勿勾选 “Development Tools”(实际上安装的组件有限,需要手动安装),虚机勾选 “Guest Agent”(Rocky Linux 和 AlmaLinux 无此选项)。
  • Installation Destination:创建分区,可选两种参考方案。
  • 默认分区方案:点选 Custom,默认使用 LVM,点击 “Click here to create them automatically” 自动创建,手动调整:删除 /home,将 SWAP 修改为整数 4 GiB,/boot 默认 1024 MiB,剩余分配给 /。
  • ** 在 VM 环境中,简化分区方便调整大小:**
  • 新建虚机,默认磁盘可以根据需要调整大小,比如 60G,这个直接用于 / 目录(可以合并 /boot),本例创建独立 /boot(容量 2G,默认 1G)。
  • 新增一块磁盘用作 SWAP,比如默认 4G。或者不创建 swap 分区,进入系统后创建文件如 /swap.img 作为 swap 分区。
    这样扩容就非常方便,虚机环境可能用不上 LVM 的便利。
  • KDUMP:默认启用。
  • Security Policy:暂无,忽略。
  • Root Password:创建 root 密码。
  • User Creation:新建额外的(管理员)账号,可选。

“Development Tools” 有哪些软件?

# dnf groupinfo "Development Tools"
Updating Subscription Management repositories.

Group: Development Tools
 Description: A basic development environment.
 Mandatory Packages:
   autoconf
   automake
   binutils
   bison
   flex
   gcc
   gcc-c++
   gdb
   glibc-devel
   libtool
   make
   pkgconf
   pkgconf-m4
   pkgconf-pkg-config
   redhat-rpm-config
   rpm-build
   rpm-sign
   strace
 Default Packages:
   asciidoc
   byacc
   ctags
   diffstat
   git
   intltool
   ltrace
   patchutils
   perl-Fedora-VSP
   perl-generators
   pesign
   source-highlight
   systemtap
   valgrind
 Optional Packages:
   cmake
   expect
   rpmdevtools
   rpmlint

手动安装开发工具命令:dnf groupinstall "Development Tools"

第二部分 配置

1. 创建文件作为 SWAP 分区

如果在安装时候没有创建 SWAP 分区,我们手动创建。

这是最简单的方式,直接在 / 目录下创建一个文件作为交换分区,可以非常灵活完美的启用和禁用 swap 并在线调整大小。

(1)创建要作为 swap 分区的文件:

增加 4GB 大小的交换分区,则命令写法如下,其中的 count 等于想要的块的数量(bs*count = 文件大小)。

# 这里定义为 /swap.img
dd if=/dev/zero of=/swap.img bs=1M count=4096
# 修改权限
chmod 600 /swap.img

(2)创建 SWAP 分区文件系统:

mkswap /swap.img #mkswap - set up a Linux swap area

(3)启用交换分区文件:

swapon /swap.img #启用 swap 文件

此时使用 free -m 命令可以看到 Swap 的容量等于原有容量加上上述创建文件容量之和。

(4)编辑 /etc/fstab 开机自动加载上述 swap 文件:

增加如下一行。

/swap.img    none    swap    defaults    0 0
#  第二个字段在 CentOS 中默认使用 swap,两者并没有不一样。
/swap.img    swap    swap    defaults    0 0
# 关于字段的风格,使用 tab 或者空格都可以,数量没有要求,通常为了对齐使用多个空格

直接命令添加:

sudo sh -c "echo'/swap.img    none    swap    defaults    0 0'>> /etc/fstab"

(5)取消 swap 文件

swapoff /swap.img
rm -r /swap.img

然后编辑 /etc/fstab,删除上述添加的一行即可。

Ubuntu 20.04 中默认使用 /swap.img 文件作为 SWAP 分区,可以直接 swapoff 并删除原文件,然后重新创建同名文件来简单扩容。我们这里借鉴了 Ubuntu 的做法,并推荐使用该种方式。

2. 格式化网卡命名

即禁用 consistent interface device naming

(1) 编辑 grub 配置文件

# 直接用 sed 命令替换
# CentOS 8
sed -i 's/rhgb/net.ifnames=0 rhgb/' /etc/default/grub
# CentOS 7
#sed -i 's/rhgb/net.ifnames=0 biosdevname=0 rhgb/' /etc/default/grub

(2) 运行如下命令重建 grub.cfg 文件

# legacy boot mode:
grub2-mkconfig -o /boot/grub2/grub.cfg

# UEFI boot mode(RHEL/CentOS):
grub2-mkconfig -o /boot/efi/EFI/redhat/grub.cfg
# AlmaLinux:
#grub2-mkconfig -o /boot/efi/EFI/almalinux/grub.cfg
# Rocky Linux
#grub2-mkconfig -o /boot/efi/EFI/rocky/grub.cfg

(3) 重命名网卡配置文件

#重新对文件进行命名:
mv /etc/sysconfig/network-scripts/ifcfg-ens160 /etc/sysconfig/network-scripts/ifcfg-eth0
sed -i 's/ens160/eth0/g' /etc/sysconfig/network-scripts/ifcfg-eth0

(4) 重启生效

reboot

参考:官方文档

3. 配置网络

RHEL 8 系列完全使用 nmcli 来管理网络,虽然仍然保留了旧版的 network-scripts 及 network.service,但是将在 RHEL 9 中废弃。

推荐使用 nmcli 命令行工具,另外有文本图形界面的 nmtui 操作比较简单,这里不在赘述。

nmcli 命令帮助:

命令不支持自动补全,但是可以通过 - h 参数逐步获得帮助

## 说明 nmcli 后面的命令关键字都可以用第一个字母简写来标识,例如:
## nmcli connection = nmcli c
## nmcli connection show --active = nmcli c s --a
nmcli -h
nmcli connection -h
nmcli connection add -h
nmcli connection modify -h

** 创建一个完整的配置文件:**

IFACE=`nmcli dev|grep ethernet|awk '{print $1}'`
nmcli con delete $IFACE
# 下面将使用传统的 eth0 命名方式,前提是已经做了格式化网卡名称的配置
nmcli con add con-name eth0 ifname eth0 type ethernet autoconnect yes

nmcli connection modify eth0 ipv4.method manual \
ipv4.addresses 10.3.5.5/24 \
ipv4.dns "10.3.5.11, 10.3.5.12" \
ipv4.gateway 10.3.5.1 \
ipv4.dns-search sysin.org

nmcli c up eth0
nmcli c reload

可以配置的参数选项:

ipv4.[method, dns, dns-search, dns-options, dns-priority, addresses, gateway, routes, route-metric, route-table, ignore-auto-routes, ignore-auto-dns, dhcp-client-id, dhcp-timeout, dhcp-send-hostname, dhcp-hostname, dhcp-fqdn, never-default, may-fail, dad-timeout]

** 重启网络:**

比如配置了静态路由,使用 nmcli c reload 无法生效,需要重启网络

systemctl restart NetworkManager.service
nmcli networking off && nmcli networking on

备注:CentOS 8 (默认安装) 重启网络 “systemctl restart network” 已经不可用。

RHEL 8 系列也可以手工配置 ifcfg,使用 nmcli 来生效新的网络配置(不推荐)

4. 修改主机名

说明:与 CentOS 7 方法相同

  • 即时生效
hostname sysin  #设置主机名为 sysin
  • 永久生效
vi /etc/hostname #编辑配置文件
sysin   #修改 localhost.localdomain 为 sysin
:x  #保存退出

或者使用命令:`hostnamectl set-hostname sysin`

同时修改 hosts 文件:
vi /etc/hosts #编辑配置文件
127.0.0.1   sysin   #增加一条
:x  #保存退出

5. 激活 cockpit web console

CentOS 8 默认集成了 cockpit,登录画面提示激活方法(模板未启用):

systemctl enable --now cockpit.socket

然后通过浏览器访问:http://<IP>:9090

6. 关闭 SELinux

SELinux 是 Linux 中最古老的一种 MAC(强制访问控制,Mandatory Access Control)模型,它是美国国家安全局的产品。除了在一些对安全有强制的要求的行业,SELinux 更多的以难以管理和排错而 “闻名”,通常认为其 “弊大于利”,许多应用安装文档中都要求关闭 SELinux。

编辑配置文件 /etc/selinux/config

# 修改 SELINUX=enforcing 为 SELINUX=disabled,即替换行
sed -i '/^SELINUX=.*/c SELINUX=disabled' /etc/selinux/config
# 或者:sed -i '/^SELINUX=enforcing/c SELINUX=disabled' /etc/selinux/config
# 注释 SELINUXTYPE=targeted
sed -i 's/^SELINUXTYPE=targeted/#&/' /etc/selinux/config

使配置生效:

setenforce 0  #0=permissive, SELinux prints warnings instead of enforcing.
shutdown -r now  #最终重启系统生效

7. 配置 firewalld

** 关闭 firewalld**(模板配置)

CentOS 8 主要改动和 RedHat Enterprise Linux 8 是一致的,基于 Fedora 28 和内核版本 4.18,其中网络方面的主要改动是 ** 用 nftables 框架替代 iptables 框架作为默认的网络包过滤工具。**

systemctl stop firewalld.service  #停止 firewall
systemctl disable firewalld.service  #禁止 firewall 开机启动
firewall-cmd --state  #查看状态

8. 安装 EPEL

EPEL 的全称叫 Extra Packages for Enterprise Linux。EPEL 是由 Fedora 社区打造,用以创建、维护以及管理针对企业版 Linux 的一个高质量附加软件包集。EPEL 适用于 RHEL 及衍生发行版如 CentOS 等。

yum -y install epel-release

或者 (EL8):
rpm -ivh https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm
rpm –import /etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-8

9. 更换国内镜像

示例更换为阿里云镜像:

# 替换
sed -e 's|^mirrorlist=|#mirrorlist=|g' \
    -e 's|^#baseurl=http://mirror.centos.org/$contentdir|baseurl=https://mirrors.aliyun.com/centos|g' \
    -i.bak \
    /etc/yum.repos.d/CentOS-*.repo

# epel (url 不一样)
sed -e 's/metalink=/#metalink=/g' \
    -e 's/#baseurl=/baseurl=/g' \
    -e 's/https:\/\/download.example\/pub/https:\/\/mirrors.aliyun.com/g' \
    -i.bak \
    /etc/yum.repos.d/epel*.repo
# 或者
sed -e 's|^metalink=|#metalink=|g' \
    -e 's|^#baseurl=https://download.example/pub|baseurl=https://mirrors.aliyun.com|g' \
    -i.bak \
    /etc/yum.repos.d/epel*.repo
# 注意:
# Rocky Linux 中 #baseurl=https://download.example/pub
# 与 CentOS 相同,而 AlmaLinux #baseurl=https://download.fedoraproject.org/pub

# 清空缓存
dnf clean all
# 更新列表
dnf makecache

10. 排除不需要的更新包

修改配置文件:

echo 'exclude=kernel* centos-linux-release' >> /etc/yum.conf
备注:安装某些软件包需要新版内核支持,需要删除以上配置。

11. 更新软件包

#清理
dnf autoremove
dnf clean all
rm -rf /var/cache/dnf

dnf mackecache  #缓存软件包信息
dnf upgrade  # = dnf update,更新软件包,包括内核及系统版本

#再次清理
dnf autoremove
dnf clean all
rm -rf /var/cache/dnf

rm -rf /tmp/*  #清空临时文件目录

12. 安装一些必备工具

## 一些基本工具最小化安装可能没有 (经测 vim 和 wget 等没有安装)
yum -y install vim wget zip unzip
# 开发工具
yum groupinstall "Development Tools"
# 以下网络工具已经不存在
# yum -y install setuptool system-config-network-tui system-config-firewall-tui
# 默认安装没有 ifconfig 命令,安装 net-tools
# ifconfig、netstat、route 等命令集
yum -y install net-tools
# host、dig 和 nslookup
yum -y install bind-utils
# 更好的 top 工具
yum -y install htop
# 文件传输:sz 和 rz
yum -y install lrzsz
# 查看日志神器 Log file Navigator
yum -y install lnav
# nc:
yum -y install nc
# lsof:
yum -y install lsof
# tree:
yum -y install tree
# pstree:
yum -y install psmisc
# ncdu:NCurses Disk Usage
yum -y install ncdu
# dstat 监控 CPU、磁盘和网络使用率
yum -y install dstat

fd 命令(fd-find,强烈推荐)

# musl libc 编译版本 (推荐)
wget https://ghproxy.com/https://github.com/sharkdp/fd/releases/download/v8.0.0/fd-v8.0.0-x86_64-unknown-linux-musl.tar.gz
# 安装:
tar -zxvf fd-v8.0.0-x86_64-unknown-linux-musl.tar.gz
cp fd-v8.0.0-x86_64-unknown-linux-musl/fd /usr/local/bin/
cp fd-v8.0.0-x86_64-unknown-linux-musl/fd.1 /usr/local/share/man/man1/

13. 配置网络时间同步 NTP

CentOS 7 开始默认使用 chrony 时间同步,可以使用恢复使用 ntp。

默认配置文件:

cat /etc/chrony.conf

查看状态:

chronyc sources -v
chronyc sourcestats -v

14. 安装 SNMP

yum -y install net-snmp net-snmp-devel net-snmp-libs net-snmp-utils

# 因为是模板,这里暂不配置

15. 虚机安装 VM-tools

在系统安装时候勾选了 “Guest Agent”,将自动安装 open-vm-tools

# 手动安装 open-vm-tools:
yum -y install open-vm-tools

# 开启服务
#chkconfig vmtoolsd on
systemctl enable vmtoolsd.service

# 启动服务
#service vmtoolsd start
systemctl start vmtoolsd

# 查看版本
vmtoolsd -v
VMware Tools daemon, version 11.2.5.26209 (build-17337674)

16. 安装图形界面

基于特定场景需要,一般不用安装

yum grouplist  #查看可安装的组件

yum groupinstall "Server with GUI"  #安装 GNOME 图形界面 (与 CentOS 7 名称不一样)
yum groupinstall "Graphical Administration Tools"  #将自动安装

startx  #启动图形界面

17. Shell 配置

Zsh

这里是针对当前用户配置。全局配置请参看其他文章,** 这里直接使用全局配置文件即可 **。

# Zsh
yum -y install zsh
# or
#dnf -y install zsh
yum -y install util-linux-user

chsh -s /bin/zsh

yum -y install git

sh -c "$(curl -fsSL https://raw.githubusercontent.com/robbyrussell/oh-my-zsh/master/tools/install.sh)"

sed -i '/^ZSH_THEME=.*/c ZSH_THEME="ys"' ~/.zshrc

echo 'alias ll="ls -lahF --color"' >> ~/.zshrc

git clone https://github.com/sangrealest/zsh-autosuggestions.git ~/.oh-my-zsh/custom/plugins/zsh-autosuggestions

sed -i '/^plugins=.*/c plugins=(git zsh-autosuggestions)' ~/.zshrc

18. 清理并制作镜像模板

清理 dnf/yum 缓存

dnf autoremove
dnf clean all
rm -rf /var/cache/dnf

清理临时文件夹

# 正确方式两句命令
rm -rf /tmp/.*
rm -rf /tmp/*

清空历史记录

第三部分 OVF 下载

下载地址:


标签:CentOS,nmcli,笔记,etc,yum,swap,install,安装
From: https://blog.51cto.com/u_15647075/9014930

相关文章

  • 【SpringBoot零基础入门到项目实战②】安装Java和Maven,创建你的第一个项目
    文章目录导言安装JavaWindows系统macOS系统Linux系统安装和配置MavenWindows系统macOS系统Linux系统配置Maven本地仓库使用阿里镜像加速创建第一个SpringBoot项目拓展学习(提前了解后面会讲到)1.深入理解SpringBoot的项目结构2.学习SpringBoot的自动配置3.掌握SpringBoot......
  • .NET DevOps 接入指南 | 1. GitLab 安装
    引言容器、DevOps和微服务被称为驱动云原生快速发展的三架马车。而DevOps是其中非常重要的一环,DevOps是由Developers(Dev)和Operations(Ops)两个单词简称组成,中文直译就是“开发运维一体化”。DevOps作为一种复杂的软件工程方法,推行实施并不可一蹴而就。因此采用好的平台工具,方能......
  • tailscale安装教程
    tailscale安装失败可能是由于以下原因之一导致的:系统兼容性问题:tailscale可能不支持你的操作系统版本或架构。请确保你的系统满足官方的最低要求,并尝试使用官方提供的正确版本进行安装。依赖项问题:tailscale可能需要一些依赖项才能正常安装和运行。请确保你的系统上已经安......
  • 读书笔记2
    孟凡荣等所著《多版本TPR树》。文中参考TR树构建了多版本TPR树。文中称多数算法参考TR树,我并没有看过TR树的文献,故具体算法尚不清楚。仅从文中所述来看TPR树是一种全时态的索引。其中的每一条记录都有一个起始时间和一个终止时间,并设置一个特定的终止时间代表“未来”,以表示这个记......
  • yum安装的nginx如何安装其他模块
    yum安装nginx没有某一模块,该如何添加第三方模块? 本文将以添加--with-stream模块为例,演示如何去添加新的模块进去。需求:生产有个接口是通过socket通信。nginx1.9开始支持tcp层的转发,通过stream实现的,而socket也是基于tcp通信。实现方法:Centos7.5下yum直接安装的nginx,添加新模......
  • 手把手从安装本地虚拟机,基于docker,部署springboot+vue项目(若依框架前后端分离版本演示
    目录1.安装本地虚拟机centos2.安装docker,拉取镜像,创建容器3.打包部署后端4.配置nginx5.打包部署前端6.常见问题汇总1.安装本地虚拟机centos部署环境提供vm16,和centos7,其中把镜像改成.iso文件就可以了阿里云链接:https://www.alipan.com/s/BTnpjuHWtEp为什么用阿里云,不限速啊,秉......
  • 木工手工笔记
    文章目录连接两根木棍两根电线连接榫卯连接隔空划线塑料热熔密封万能的502扳手模具修复模具修复进阶手工活真的很解压。简单整理下吧。以前对物理知识不是很重视,现在发现很有用,很多地方都能用到。连接两根木棍中心划线,螺丝钉打入,去掉顶帽,打入木工胶。木棍2拧到螺丝上即可。......
  • Ubuntu16下QEMU6.1.0安装和使用完整流程
    目录一、测试环境二、环境搭建1、安装依赖库2、安装pyhton3.82.1、下载Python3.8.172.2、创建新版python的安装目录(便于卸载)2.3、安装依赖库2.4、解压安装包2.5、安装2.6、添加环境变量2.7、配置python3默认版本为3.83、安装gcc73.1、下载安装:3.2、指令安装:三、QEMU安装1、下载解......
  • MAC 下载安装、启动和关闭 RocketMQ实例
    文章目录1.下载并解压2.实例2.1使用Maven打包、构建2.2修改Nameserver和Broker启动的配置2.2启动nameserver和broker3.关闭rocketmq的命令参考文献1.下载并解压首先,你需要安装好Java环境、Maven。网址:http://rocketmq.apache.org/dowloading/releases/,下载ro......
  • MAC 使用国内源安装历史版本 Neo4j
    1.概述推荐去官网下载,不管这里用的张帜老师推荐的国内源:http://doc.we-yun.com:1008/neo4j。注意:最新Neo4j4.x需要jdk11,Neo4j3.X使用jdk8。这是我找到国内neo4j下载地方的论坛(因为这个下载源是Neo4j权威指南作者:张帜老师推荐的,感觉应该没问题,我就用了,请你考虑后再使用,本人不......