配置国内源

更新国内软件源使得系统更新更迅速

参考:

菜鸟教程 Linux sed 命令

阿里云 Cent OS 国内源配置

清华大学开源镜像站

网易开源镜像站

稀土掘金 常用的yum源整理

博客园-DevBlog by WS:CentOS 8 / CentOS Stream 换源,设置dnf / yum镜像

起因

公司使用的是腾讯云主机,下载golang速度实在是太慢了,等待的心情焦灼,直接换源。

腾讯云CnetOS 镜像源文件

在使用腾讯云的CentOS 8发现yum makecache /etc/yum.repos.d/目录下有好多文件,猜测是各个源有各个源不同的配置文件,也不知道这么做的目的,只是觉得搞的很杂。

1
2
3
4
5
6
7
8
yum.repos.d ls
CentOS-AppStream.repo.rpmsave CentOS-HA.repo.rpmsave CentOS-Linux-Debuginfo.repo CentOS-Linux-FastTrack.repo.bak CentOS-Linux-PowerTools.repo
CentOS-Base.repo.rpmsave CentOS-Linux-AppStream.repo CentOS-Linux-Debuginfo.repo.bak CentOS-Linux-HighAvailability.repo CentOS-Linux-PowerTools.repo.bak
CentOS-centosplus.repo.rpmsave CentOS-Linux-AppStream.repo.bak CentOS-Linux-Devel.repo CentOS-Linux-HighAvailability.repo.bak CentOS-Linux-Sources.repo
CentOS-Devel.repo.rpmsave CentOS-Linux-BaseOS.repo CentOS-Linux-Devel.repo.bak CentOS-Linux-Media.repo CentOS-Linux-Sources.repo.bak
CentOS-Epel.repo CentOS-Linux-BaseOS.repo.bak CentOS-Linux-Extras.repo CentOS-Linux-Media.repo.bak CentOS-PowerTools.repo.rpmsave
CentOS-Epel.repo.bak CentOS-Linux-ContinuousRelease.repo CentOS-Linux-Extras.repo.bak CentOS-Linux-Plus.repo
CentOS-Extras.repo.rpmsave CentOS-Linux-ContinuousRelease.repo.bak CentOS-Linux-FastTrack.repo CentOS-Linux-Plus.repo.bak

一气之下,直接在此目录下创建了个backeup文件夹,直接将这些杂乱无章的文件放在backeup文件夹下

使用阿里云镜像

/etc/yum.repos.d/目录下,直接执行阿里云官网文档的步骤下载阿里云提供的CentOS-Base.repo

1
wget -O /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-vault-8.5.2111.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
yum.repos.d cat CentOS-Base.repo 
# CentOS-Base.repo
#
# The mirror system uses the connecting IP address of the client and the
# update status of each mirror to pick mirrors that are updated to and
# geographically close to the client. You should use this for CentOS updates
# unless you are manually picking other mirrors.
#
# If the mirrorlist= does not work for you, as a fall back you can try the
# remarked out baseurl= line instead.
#
#

[base]
name=CentOS-8.5.2111 - Base - mirrors.aliyun.com
baseurl=http://mirrors.aliyun.com/centos-vault/8.5.2111/BaseOS/$basearch/os/
http://mirrors.aliyuncs.com/centos-vault/8.5.2111/BaseOS/$basearch/os/
http://mirrors.cloud.aliyuncs.com/centos-vault/8.5.2111/BaseOS/$basearch/os/
gpgcheck=0
gpgkey=http://mirrors.aliyun.com/centos/RPM-GPG-KEY-CentOS-Official

#additional packages that may be useful
[extras]
name=CentOS-8.5.2111 - Extras - mirrors.aliyun.com
baseurl=http://mirrors.aliyun.com/centos-vault/8.5.2111/extras/$basearch/os/
http://mirrors.aliyuncs.com/centos-vault/8.5.2111/extras/$basearch/os/
http://mirrors.cloud.aliyuncs.com/centos-vault/8.5.2111/extras/$basearch/os/
gpgcheck=0
gpgkey=http://mirrors.aliyun.com/centos/RPM-GPG-KEY-CentOS-Official

#additional packages that extend functionality of existing packages
[centosplus]
name=CentOS-8.5.2111 - Plus - mirrors.aliyun.com
baseurl=http://mirrors.aliyun.com/centos-vault/8.5.2111/centosplus/$basearch/os/
http://mirrors.aliyuncs.com/centos-vault/8.5.2111/centosplus/$basearch/os/
http://mirrors.cloud.aliyuncs.com/centos-vault/8.5.2111/centosplus/$basearch/os/
gpgcheck=0
enabled=0
gpgkey=http://mirrors.aliyun.com/centos/RPM-GPG-KEY-CentOS-Official

[PowerTools]
name=CentOS-8.5.2111 - PowerTools - mirrors.aliyun.com
baseurl=http://mirrors.aliyun.com/centos-vault/8.5.2111/PowerTools/$basearch/os/
http://mirrors.aliyuncs.com/centos-vault/8.5.2111/PowerTools/$basearch/os/
http://mirrors.cloud.aliyuncs.com/centos-vault/8.5.2111/PowerTools/$basearch/os/
gpgcheck=0
enabled=0
gpgkey=http://mirrors.aliyun.com/centos/RPM-GPG-KEY-CentOS-Official


[AppStream]
name=CentOS-8.5.2111 - AppStream - mirrors.aliyun.com
baseurl=http://mirrors.aliyun.com/centos-vault/8.5.2111/AppStream/$basearch/os/
http://mirrors.aliyuncs.com/centos-vault/8.5.2111/AppStream/$basearch/os/
http://mirrors.cloud.aliyuncs.com/centos-vault/8.5.2111/AppStream/$basearch/os/
gpgcheck=0
gpgkey=http://mirrors.aliyun.com/centos/RPM-GPG-KEY-CentOS-Official

运行以下命令生成缓存

1
2
3
4
5
6
dnf clean all # 可以先清除所有的缓存文件
yum makecache # 制作元数据缓存
CentOS-8.5.2111 - Base - mirrors.aliyun.com 265 kB/s | 4.6 MB 00:17
CentOS-8.5.2111 - Extras - mirrors.aliyun.com 66 kB/s | 10 kB 00:00
CentOS-8.5.2111 - AppStream - mirrors.aliyun.com 172 kB/s | 8.4 MB 00:50
Metadata cache created.

可见原理其实是阿里云官方直接将分那么几个的镜像配置文件写成了一个,更新缓存的时候所需的几个镜像缓存直接就从阿里云更新了。

速度飞起~

其他源热门国内源更新的方式也看了一下,比如清华源,无非就是把那一堆每个源分成各个文件中的所有官方http协议的链接都用命令进行了更改,原理还是一样的。

更新系统包

1
2
dnf check-update		#首先更新需要更新的软件列表
dnf update #更新所有软件(包括内核更新)

软件仓库

在 CentOS 系统中,有多种方法可以添加软件仓库

  1. 使用 yum-config-manager 添加仓库:

可以使用 yum-config-manager 工具添加新的仓库。这需要先安装 yum-utils 软件包。以下是添加仓库的命令:

1
sudo yum-config-manager --add-repo <repository_url>

替换为您要添加的仓库的 URL。

  1. 手动创建仓库文件:

在 /etc/yum.repos.d/ 目录下,您可以手动创建一个以 .repo 结尾的文件,例如 myrepo.repo。在这个文件中,您需要提供仓库的相关信息。一个简单的示例:

1
2
3
4
5
[myrepo]
name=My Repository
baseurl=http://example.com/myrepo/
enabled=1
gpgcheck=0
  1. 使用 RPM 包添加仓库:

有时,软件提供商会提供一个 RPM 包,用于自动添加仓库和安装相关密钥。要使用 RPM 包添加仓库,您可以运行以下命令:

1
sudo yum install <rpm_package_url>

替换为 RPM 包的 URL。

这些方法中的任何一种都可以用于在 CentOS 系统中添加软件仓库。添加仓库后,您可以使用 yum 或 dnf(在 CentOS 8 及更高版本中)来安装、更新和管理来自这些仓库的软件包。

dnf 包管理

首先Cent OS的DNF 和 YUM 均是 rpm 软件包管理工具,但是 DFN 替代 YUM 的说法由来已久,因为 YUM 包管理工具有一些问题长期得不到解决。
这些问题包括性能低下、内存占用高以及依赖包解决方案不佳等。
而 DNF 在依赖包解决方案中采用了由 SUSE 开发的”libsolv”库,用以提升依赖包解析性能。
YUM 是一个管理 RPM 软件依赖包和软件库的前端工具,可以下载 RPM 软件包并安装,最后删除下载的软件包。
至于为什么要开发一个新的工具来替代 YUM,而不是解决 YUM 现有的问题,其原因在于想要解决 YUM 现有的问题技术上存在很多问题,并且 YUM 团队也不能很快适应更新带来的改变。

另外,更重要的原因是 YUM 的源代码有大概56000行,修改起来工作量巨大。

参考:

linux 解决”zsh: no matches found”

常用命令

当你输入一个命令按下回车键时候会出现command not found:<command>时,不知道执行此命令需要哪个软件包的情况下,使用以下命令:

1
2
# 根据命令查找软件包名称
dnf provides <command>
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

# 升级系统所有包的列表
dnf check-update
#更新所有软件包(两个命令没区别)
dnf upgrade
dnf update
#列出已安装的包
dnf list installed
#搜索镜像源内的包
dnf search httpd

#安装一个http的包
dnf install httpd
#重新安装一个http的包
dnf reinstall httpd
#只进行下载http的包
dnf download httpd
#显示lua包的信息
dnf info lua
#更新指定包
dnf update httpd
#显示所有已有软件包组
dnf grouplist
#单独安装所有的指定的软件包组
dnf groupinstall 'System Tools'
#单独升级软件包组
dnf groupupdate 'System Tools'
#列出所有库文件(可看到系统中哪些库开了哪些被禁了)
dnf repolist all
#列出系统所有被开了的软件库
dnf repolist

常用包管理命令

参考:

博客园-xuyaowen:yum/dnf/rpm 等 查看rpm 包安装路径 (fedora 中 pygtk 包内容安装到哪里了)

1
2
3
rpm -qa 		# 查询所有已安装包 -a, --all   query/verify all packages   {-q|--query} 
yum info <package_name> # 查看包信息
rpm -ql <package_name> # 查看某个包内容和安装位置

sudo

非root用户要更改文件权限不允许非root用户修改时会报错:[用户] is not in the sudoers file. This incident will be reported.

参考:

博客园-henrylinux:Linux给用户添加sudo权限

非root用户开启sudo

编辑/etc/sudoers文件,找到root ALL=(ALL) ALL往后添加一行

1
2
# 例: zhuding ALL=(ALL) ALL 
<你的用户名> ALL=(ALL) ALL

去除非root用户sudo输入密码

但普通用户使用sudo需要输入密码,如果不需要这个安全限制,可以每次sudo要求输入密码的配置如下(注意空格)

1
fuding  ALL=(ALL)  NOPASSWD: ALL