0%

rhel安装及使用光盘源和清华源

在VMware环境下搭建了rhel 8
之前一直常用的是Ubuntu
所以对包管理和网络配置命令都还不够熟悉
写一篇文章记录下来方便查阅
包括有rhel换源、配置扩展库和修改系统语言

网络配置

刚安装完成后的rhel8默认是没有激活网卡的,由于在rhel8上,已废弃network.service,因此只能通过NM进行网络配置,包括动态ip和静态ip。换言之,在rhel8上,必须开启NM,否则无法使用网络。

激活网卡

我这里使用的是Hyper-V来安装的rhel,默认网卡为eth0,如果你使用的是VMware那么网卡名称可能会有所变化。

1
2
3
4
5
ifconfig
#查看网卡名

nmcli d connect eth0
#激活网卡eth0

具体网卡名视情况而定,在运行上诉命令后即可激活网卡,默认使用的是DHCP协议获取IP,如果你的网段内没有DHCP服务器,那么你需要手动设置一个静态IP。

配置静态IP

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
vim /etc/sysconfig/network-scripts/ifcfg-eth0

TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
#BOOTPROTO=dhcp
BOOTPROTO=none
IPADDR=192.168.199.10
PREFIX=24
GATEWAY=192.168.199.1
DNS1=119.29.29.29
DNS2=8.8.8.8
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=eth0
UUID=4fa90b7a-17c2-48f7-bf35-bbf77ccb755b
DEVICE=eth0
ONBOOT=yes

这里需要改动的是两个地方
将BOOTPROTO=由dhcp改为none,我这里使用的是注释的方式。
ONBOOT=由no改为yes,这个选项表示是否开机启动。
添加静态IP、子网掩码、网关以及DNS信息

1
2
3
4
5
IPADDR=192.168.199.10
PREFIX=24
GATEWAY=192.168.199.1
DNS1=119.29.29.29
DNS2=8.8.8.8

务必保证指定的IP和上级网关在同一个网段,否则就算IP指定了也是无法连通内外网的。

1
2
3
4
5
6
7
8
9
10
11
12
13
nmcli c reload
#重载所有ifcfg或route到connection(不会立即生效)

nmcli c down eth0
nmcli c up eth0
#重启eth0使修改的配置生效

cat /etc/resolv.conf
#查看配置的DNS是否生效

# Generated by NetworkManager
nameserver 119.29.29.29
nameserver 8.8.8.8

到了这里静态IP的配置也就已经完成了,可以使用ping命令检查网络。

rhel 8 换清华源

rhel8默认使用的软件批量管理工具由原版本的yum换成了速度更快的dnf,原有的yum命令仅为dnf的软链接,而其自带的dnf源需要付费注册,未注册情况下会报如下错误

1
2
3
4
5
6
dnf update

Updating Subscription Management repositories.
Unable to read consumer identity
This system is not registered to Red Hat Subscription Management. You can use subscription-manager to register.
Error: There are no enabled repos.

dnf源文件所在目录依旧为/etc/yum.repos.d/下,但官方在发布Beta版本时并没有为此系统自带源文件,需要我们自行下载,我们将使用清华源提供的源文件来为RHEL8系统提供软件安装源。

下载rhel8清华源文件

1
2
3
4
5
cd /etc/yum.repos.d
wget https://mirrors.tuna.tsinghua.edu.cn/redhat/rhel/rhel-8-beta/rhel-8-beta.repo

## miniinstall安装的话是没有wget命令的,可以使用curl命令
curl -o rhel-8-beta.repo https://mirrors.tuna.tsinghua.edu.cn/redhat/rhel/rhel-8-beta/rhel-8-beta.repo

编辑源文件

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
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
vim /etc/yum.repos.d/rhel-8-beta.repo

[rhel-8-baseos-beta-source-rpms]
name = Red Hat Enterprise Linux 8 - BaseOS Beta (Source RPMs)
baseurl = https://downloads.redhat.com/redhat/rhel/rhel-8-beta/baseos/source/
enabled = 1
gpgcheck = 1
gpgkey = file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-beta,file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release

[rhel-8-for-x86_64-baseos-beta-rpms]
name = Red Hat Enterprise Linux 8 for x86_64 - BaseOS Beta (RPMs)
baseurl = https://downloads.redhat.com/redhat/rhel/rhel-8-beta/baseos/x86_64/
enabled = 1 gpgcheck = 1
gpgkey = file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-beta,file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release

[rhel-8-appstream-beta-source-rpms]
name = Red Hat Enterprise Linux 8 - AppStream Beta (Source RPMs)
baseurl = https://downloads.redhat.com/redhat/rhel/rhel-8-beta/appstream/source/
enabled = 1 gpgcheck = 1
gpgkey = file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-beta,file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release

[rhel-8-for-x86_64-appstream-beta-rpms]
name = Red Hat Enterprise Linux 8 for x86_64 - AppStream Beta (RPMs)
baseurl = https://downloads.redhat.com/redhat/rhel/rhel-8-beta/appstream/x86_64/
enabled = 1 gpgcheck = 1
gpgkey = file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-beta,file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release

[rhel-8-ha-beta-source-rpms]
name = Red Hat Enterprise Linux 8 - HighAvailability Beta (Source RPMs)
baseurl = https://downloads.redhat.com/redhat/rhel/rhel-8-beta/add-ons/ha/source/
enabled = 1 gpgcheck = 1
gpgkey = file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-beta,file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release

[rhel-8-for-x86_64-ha-beta-rpms]
name = Red Hat Enterprise Linux 8 for x86_64 - HighAvailability Beta (RPMs)
baseurl = https://downloads.redhat.com/redhat/rhel/rhel-8-beta/add-ons/ha/x86_64/
enabled = 1 gpgcheck = 1
gpgkey = file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-beta,file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release

[rhel-8-rs-beta-source-rpms]
name = Red Hat Enterprise Linux 8 - ResilientStorage Beta (Source RPMs)
baseurl = https://downloads.redhat.com/redhat/rhel/rhel-8-beta/add-ons/rs/source/
enabled = 1 gpgcheck = 1
gpgkey = file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-beta,file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release

[rhel-8-for-x86_64-rs-beta-rpms]
name = Red Hat Enterprise Linux 8 for x86_64 - ResilientStorage Beta (RPMs)
baseurl = https://downloads.redhat.com/redhat/rhel/rhel-8-beta/add-ons/rs/x86_64/
enabled = 1
gpgcheck = 1
gpgkey = file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-beta,file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release

[rhel-8-rt-beta-source-rpms]
name = Red Hat Enterprise Linux 8 - RT Beta (Source RPMs)
baseurl = https://downloads.redhat.com/redhat/rhel/rhel-8-beta/add-ons/rt/source/
enabled = 1
gpgcheck = 1
gpgkey = file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-beta,file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release

[rhel-8-for-x86_64-rt-beta-rpms]
name = Red Hat Enterprise Linux 8 for x86_64 - RT Beta (RPMs)
baseurl = https://downloads.redhat.com/redhat/rhel/rhel-8-beta/add-ons/rt/x86_64/
enabled = 1
gpgcheck = 1
gpgkey = file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-beta,file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release

repo源文件解读

  • local.repo:这个源文件的名字,这个根据实际的使用自己定义
  • [local]:repositry的名字,必须是独一无二的,不能和其他源文件冲突
  • name=local:对于[local]的具体描述,这个可以根据具体使用描述
  • baseurl:这个是非常重要的一环,表明了repositry的地址,支持ftp协议,http协议和file协议;
  • enabled=0/1:只有两个值,为1时表示repositry可以获取,0表示关闭
  • gpgcheck=0/1:有1和0两个选择,分别代表是否是否进行gpg校验,如果没有这一项,默认是检查的
  • gpgkey=url:后面接的是gpgkey的地址,如果前面定义gpgcheck=1的话。

使用清华源文件

修改完成后,进行元数据缓存后即可使用。

1
2
3
4
5
6
7
8
dnf clean all
#删除缓存的无用软件包

dnf makecache
#重新获取并建立软件源元数据信息缓存

dnf update
#升级所有系统软件包

附上Liunx dnf命令大全
Linux命令手册

使用光盘源

上面说了如何使用清华源,使用光盘源的配置方法和上面一样。

挂载光盘

假设这里你的机器上只有一个光盘。

1
2
3
4
5
6
mount -lv /dev/cdrom /mnt

##warning请忽略

##如果你这里没有安装光盘而是系统的iso镜像文件,那么也可以使用mount命令来挂载
mount -o loop /root/rhel-8.0-x86_64-dvd.iso /mnt

创建dvd.repo

1
2
3
4
5
6
7
vi dvd.repo
[dvd]
name = dvd
baseurl = file:///mnt/BaseOS
enabled = 1
gpgcheck = 1
gpgkey = file:///mnt/RPM-GPG-KEY-redhat-beta,file:///mnt/RPM-GPG-KEY-redhat-release

注意这里我的系统是rhel8 所以文件中的baseurl目录是/mnt/BaseOS
正常你的目录可能为/mnt,视你挂载的路径和情况而定。

清除元数据重建缓存

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
dnf clean all

Updating Subscription Management repositories.
Unable to read consumer identity
This system is not registered to Red Hat Subscription Management. You can use subscription-manager to register.
0 files removed

dnf makecache

Updating Subscription Management repositories.
Unable to read consumer identity
This system is not registered to Red Hat Subscription Management. You can use subscription-manager to register.
dvd 188 MB/s | 2.2 MB 00:00
Last metadata expiration check: 0:00:01 ago on Thu Aug 15 22:07:55 2019.
Metadata cache created.

dnf update

Unable to read consumer identity
This system is not registered to Red Hat Subscription Management. You can use subscription-manager to register.
Last metadata expiration check: 0:00:58 ago on Thu Aug 15 22:07:55 2019.
Dependencies resolved.
Nothing to do.
Complete!

添加epel扩展库

在下一篇文章里有提到
rhel8搭建Openvpn并设置私网互通使用TCP代理

rhel 7换源

redhat系统安装好尽管默认带有yum,但是redhat的更新包只对注册用户有效(收费),所以需要更换yum源。

BIOS启动模式

换源之前首先确定自己的BIOS启动模式,如果是UEFI启动模式,那么需要先备份系统的/boot/efi/EFI/redhat目录,最简单的确认方法就是查看/sys/firmware/efi/目录是否存在,如果使用的BIOS那么该目录不存在。

1
2
3
4
5
6
7
8
9
[root@localhost ~]# ls /sys/firmware/efi/
config_table efivars fw_platform_size fw_vendor runtime runtime-map systab vars

#该目录下有文件存在,则为UEFI启动模式,需要备份efi

[root@localhost ~]# ls /sys/firmware/efi
ls: cannot access /sys/firmware/efi: No such file or directory

#该目录不存在,则为BIOS,不用备份,直接换源即可

备份efi目录,备份到哪里都可以,我这里直接备份到了root的家目录:

1
[root@localhost ~]# cp -r /boot/efi/EFI/redhat redhat

先备份出来,等换完阿里源后再恢复回去,否则重启后会引导不了redhat系统。

修改YUM源为阿里源

这里我将官方源修改为阿里的Centos7源:

1
2
3
4
5
6
[root@localhost ~]# curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
下载阿里的Centos7源到/etc/yum.repos.d路径下

将文件中的$releaserver全部修改为7,因为这里是Redhat系统,releaserver变量是获取不到正确版本信息的。
[root@localhost ~]# vi /etc/yum.repos.d/CentOS-Base.repo
:%s/$releasever/7/g

修改YUM源为163源

2019-11-17日记:我这里连接阿里源有问题,所以不得已换为163源,虽然也不是很快,但至少可用:

1
2
3
wget -O /etc/yum.repos.d/CentOS7-Base-163.repo http://mirrors.163.com/.help/CentOS7-Base-163.repo
vim /etc/yum.repos.d/CentOS7-Base-163.repo
:%s/$releasever/7/g

重建yum缓存

1
2
3
[root@localhost ~]# yum clean all 
[root@localhost ~]# yum makecache
[root@localhost ~]# yum update

恢复efi

如果不是UEFI启动模式,请跳过。

1
2
3
4
5
6
7
8
9
[root@localhost ~]# rm -rf /boot/efi/EFI/centos
#删除centos的efi引导目录

[root@localhost ~]# cp -rf redhat /boot/efi/EFI
cp: overwrite '/boot/efi/EFI/redhat/fonts/unicode.pf2'? y
cp: overwrite '/boot/efi/EFI/redhat/grubx64.efi'? y
cp: overwrite '/boot/efi/EFI/redhat/grubenv'? y
cp: overwrite '/boot/efi/EFI/redhat/grub.cfg'? y
#恢复redhat的efi引导项

rhel7添加epel扩展库

yum install epel-release -y

rhel7修改语言

修改系统为中文

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
[root@localhost ~]# echo $LANG
zh_CN.utf8
#查看当前的系统语言

[root@localhost ~]# locale -a |grep "zh_CN"
zh_CN
zh_CN.gb18030
zh_CN.gb2312
zh_CN.gbk
zh_CN.utf8
#查看系统是否安装了中文安装包

[root@localhost ~]# vim /etc/locale.conf
LANG="zh_CN.utf8"
#或者使用下面的命令来修改系统语言
localectl set-locale LANG=zh_CN

[root@localhost ~]# source /etc/locale.conf
[root@localhost ~]# date
2019年 10月 07日 星期一 21:57:25 CST

支持中文字符

如果不想修改系统语言为中文而又需要支持中文字符的话,尝试下列方法:

1
2
echo 'LANG="en_US.UTF-8"' >> /etc/sysconfig/i18n
source /etc/sysconfig/i18n

远程连接出现manpath报错

具体报错信息如下:
manpath: can't set the locale; make sure $LC_* and $LANG are correct.
其实这并不影响正常使用,只是对中文字符可能会出现乱码,使用上面的支持中文字符方法可生效,但缺点是临时或者说是单次生效,在下次重新登陆后依然会有问题,可以直接在environment文件中添加变量:

1
2
3
4
vim /etc/environment

LANG=en_US.utf-8
LC_ALL=en_US.utf-8