CentOS知识集锦
dnf是yum的下一个重大版本,基于RPM的Linux的包管理器。dnf保证了和yum的CLI接口的大概兼容性。
命令 | 作用 | ||
check-update | 检查可更新的软件包 | ||
upgrade |
更新软件包
|
||
install | 安装指定软件包
|
||
reinstall | 重新安装指定软件包 | ||
remove | 删除指定软件包 | ||
search | 以关键词搜索软件包 | ||
info | 查看软件包详情 | ||
repoquery |
查看软件包依赖
|
||
download | 下载软件包到当前目录(不安装) | ||
list installed | 列出已安装软件包 | ||
grouplist | 列出软件组 | ||
groupinstall | 安装指定软件组软件 | ||
groupupdate | 更新指定软件组软件 | ||
groupremove | 删除指定软件组软件 | ||
repolist | 列出已启用的软件安装源 | ||
repolist all | 列出所有软件安装源 | ||
downgrade | 降级指定软件包版本 | ||
history | 查看 DNF 命令历史记录 | ||
config-manager |
|
||
autoremove | 删除不需要的依赖项软件包 | ||
clean all | 删除缓存数据及软件包文件 |
rpm即红帽子包管理器,是Redhat及其衍生系统使用的软件包管理工具。其常用选项包括:
选项分类 | 选项说明 |
安装/更新/删除 |
-i, --install 安装软件包 -h, --hash 软件包安装的时候列出哈希标记 |
命令应用举例:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
#检查软件包是否已经安装 rpm -q pptpd #安装指定路径上的软件包并显示进度 rpm -ivh ~/jdk.rpm #不安装,仅测试依赖关系 rpm -ivh --test ~/jdk.rpm #列出所有已安装的软件包 rpm -qa #升级软件包 rpm -Uvh jdk.rpm #删除软件包 rpm -e jdk.rpm #从源代码编译并安装软件 rpm --recompile vim-4.6.src.rpm # 显示wget包在系统中安装的文件 rpm -ql wget # 显示RPM包中的文件 rpm -qlp wget.rpm # 显示一个文件所属的软件包 rpm -qf /usr/bin/file |
yum(Yellow dog Updater, Modified)是一个交互式的、基于RPM的软件包管理工具,类似于apt-get。它能够从指定的服务器自动下载 RPM 包并且安装,可以处理依赖性关系,并且一次安装所有依赖的软件包,支持Redhat-like的操作系统。其命令格式如下:
1 |
yum [options] [command] [package ...] |
其中command为子命令,包括:
子命令 | 说明 | ||
check | 检查 RPM 数据库问题 | ||
check-update | 检查是否有可用的软件包更新 | ||
update | 更新系统中的一个或多个软件包, yum update [pkg0 [,...]] ,不指定包名则更新所有软件包 | ||
repolist | 显示已配置的源 | ||
search | 根据关键字搜索软件包吗, yum search keyword | ||
clean | 删除缓存数据(/var/cache/yum) | ||
install | 向系统中安装一个或多个软件包, yum install pkg0 [,...] | ||
reinstall | 覆盖安装软件包 | ||
deplist | 列出软件包的依赖关系 | ||
downgrade | 降级软件包 | ||
erase | 从系统中移除一个或多个软件包 | ||
info | 显示关于软件包或组的详细信息 | ||
list |
列出一个或一组软件包:
|
||
provides | 查找提供指定内容的软件包 | ||
repo-pkgs | 将一个源当作一个软件包组,可以一次性安装/移除全部软件包 |
options为选项,常用的包括:
- -y 假设对所有提示回答“是”
- -q 不输出安装信息,常和-y联用
- -e 设置错误级别,0-10,0表示仅仅输出致命错误
从YUM源下载RPM包,注意,已经安装的RPM包,或者它的依赖,都不会下载。
格式: yumdownloader [options] package1 [package2...]
选项:
--destdir DIR 下载到的目标目录,默认当前目录
--urls 从指定URL下载,而不是根据包名下载
--resolve 下载RPM时,解析它的依赖,并一同下载
--source 下载source而非binary
--archlist=ARCH1[,ARCH2...] 下载指定体系结构的包
从YUM存储库查询信息
格式: repoquery [options] <item ...>
选项:
-i 显示类似于
rpm -qi的软件包信息
-l 列出包中文件
-R 列出包的依赖
--resolve 解析包的capabilities,如果不指定该选项,列出的依赖是文件,指定后列出的是包名
--recursive 递归的查询
--location 打印包的可下载位置
示例:
1 2 |
# 解析bind-utils的所有依赖 递归解析包 并下载 repoquery -R --resolve --recursive bind-utils | xargs -r yumdownloader |
将RPM包转换为CPIO归档文件,输出到标准输出。示例: rpm2cpio wget.rpm| cpio -idm
命令 | 说明 | ||
update-ca-trust |
更新系统的根证书列表:
|
||
firewalld |
防火墙服务,是CentOS 7的重要特性。优势包括:
|
||
firewall-cmd |
firewalld的命令行接口。 格式: firewall-cmd [OPTIONS...] 选项:
|
1 2 3 |
rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org dnf install https://www.elrepo.org/elrepo-release-8.0-2.el8.elrepo.noarch.rpm dnf --enablerepo=elrepo-kernel install kernel-ml |
重启即可。
1 |
curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo |
将证书拷贝到目录:/etc/pki/ca-trust/source/anchors/,然后执行:
1 |
update-ca-trust extract |
以x64的Centos为例
1 2 3 4 |
wget http://pkgs.repoforge.org/apt/apt-0.5.15lorg3.94a-5.el5.rf.x86_64.rpm rpm -Uvh apt-0.5.15lorg3.94a-5.el5.rf.x86_64.rpm cp /etc/apt/sources.list.d/os.list /etc/apt/sources.list vi /etc/apt/sources.list |
修改Grub启动选项仍然是通过/etc/default/grub文件,但是Ubuntu下update-grub命令的等价物是:
1 |
grub2-mkconfig -o /boot/grub2/grub.cfg |
1 2 3 4 5 6 7 |
#添加源Fedora Extra Packages for Enterprise Linux (EPEL) repository #该源包含了很多CentOS系统没有包含的常用软件 yum install epel-release #如果从该源安装软件时出现: Cannot retrieve metalink for repository: epel. Please verify its path and try again #则编辑vi /etc/yum.repos.d/epel.repo #把所有baseurl前面的注释#去掉 #把所有mirrorlist前面加上注释# |
1 2 3 4 5 6 7 |
# Zeroconf(Multicast DNS)规范的开源实现 # 它可以在没有DNS服务的局域网里发现基于zeroconf协议的设备和服务 yum install avahi # GNU Name Service Switch (NSS)插件,允许使用*.local风格的域名发现 yum install nss-mdns # 启动服务 service avahi-daemon start |
首先,停止网络管理器服务,并禁用之:
1 2 |
systemctl stop NetworkManager.service systemctl disable NetworkManager.service |
对于/etc/sysconfig/network-scripts/ifcfg-*,你需要设置:
1 2 |
NM_CONTROLLED=no ONBOOT=yes |
启动传统的网络服务:
1 2 3 4 5 |
# 确保网络服务启用 chkconfig network on # 手工启动一下服务 service network start # 即使使用传统网络服务,/etc/sysconfig/network-scripts/中的脚本仍然有效 |
1 2 3 4 |
# 禁用 systemctl disable firewalld # 停止服务 systemctl stop firewalld |
1 |
yum groupinstall 'Development Tools' |
报错:ping: unknown host localhost
解决办法:
- 首先查看/etc/hosts,确保存在这样的条目: 127.0.0.1 localhost
- 然后,确保/etc/nsswitch.conf的访问权限正确:
1sudo chmod 644 /etc/nsswitch.conf并具有合适的配置:
12# 应当包含fileshosts: files dns
1 2 3 4 5 6 7 8 9 |
wget http://repo.mysql.com/mysql-community-release-el7-5.noarch.rpm rpm -ivh mysql-community-release-el7-5.noarch.rpm # 安装MySQL yum install mysql-server systemctl start mysqld # 执行此脚本,修改root密码、移除匿名用户,等等 mysql_secure_installation |
1 |
yum install -y net-tools |
在CentOS 7中,下列命令可以用来修改主机名:
- hostnamectl:修改系统主机名,推荐的方式
- nmtui:基于文本用户接口(TUI)修改系统主机名
- nmcli:基于NetworkManager的CLI修改主机名
主机名可以分为几个类型:
- 静态主机名:由系统管理员分配,例如tokyo.gmem.cc
- 临时/动态主机名:由DHCP或者mDNS服务器运行时分配
- Pretty host name:由系统管理员或者最终用户分配的UTF-8兼容的、自由格式的主机名
查看主机名信息:
1 2 3 4 5 6 7 8 9 10 11 |
hostnamectl status # Static hostname: localhost.localdomain # Icon name: computer-vm # Chassis: vm # Machine ID: a179e3668a70483691a57509c0044cc4 # Boot ID: 1b264d45e8db4fc6a8655f6451de32e9 # Virtualization: qemu # Operating System: CentOS Linux 7 (Core) # CPE OS Name: cpe:/o:centos:centos:7 # Kernel: Linux 3.10.0-327.28.3.el7.x86_64 # Architecture: x86-64 |
设置主机名:
1 2 3 4 |
hostnamectl set-hostname cos7-0 hostnamectl set-hostname "CentOS 7 base" --pretty hostnamectl set-hostname cos7-0 --static hostnamectl set-hostname cos7-0 --transient |
通过控制台登录到文字界面时,可以使用下面的命令设置字体:
1 2 3 4 5 6 7 8 |
# 下载新字体 yum install terminus-fonts-console # 设置字体 setfont ter-116n.psf.gz # 持久化设置 echo setfont ter-116n.psf.gz >> /etc/rc.local |
1 |
PS1="\e[1;32m\u@\h\e[39m:\e[1;34m\w\e[39m\\$ \e[0;39m" |
Leave a Reply