1.关于rpm及yum命令
查找rpm包
rpm -qa bash
查看rpm包的变更历史
rpm -q --changelog bash | head
按照文件查看rpm包名
rpm -qf /usr/bin/bash
按照rpm包名查找文件清单
rpm -ql test.rpm
按照rpm包名查看包发布信息
rpm -qi test.rpm
注意:可以使用yum info test查询
查询多个版本
yum --showduplicates list kernel
安装特定版本
2.关于文件缺少或匹配错误
首先检查文件是否存在
find /usr -name libnsssysinit.so
其次检查相关文件的提供商信息
yum -y provides '*/libnsssysinit.so'
可以使用fdd命令查看关联文件
fdd libnsssysinit.so
3.关于rpm2cpio及cpio
cpio 命令用于从归档包中存入和读取文件。cpio 命令可以从归档包中提取文件(或目录),也可以将文件(或目录)复制到归档包中。
将rpm文件输出当前目录
rpm2cpio ../libstdc++-4.3.0-8.i386.rpm | cpio -idv
将/etc下的所有普通文件都备份到/opt/etc.cpio,使用以下命令:
find /etc –type f | cpio –ocvB >/opt/etc.cpio
将系统上所有资料备份到磁带机内,使用以下命令:
find / -print | cpio -covB > /dev/st0
查看上例磁带机上备份的文件,使用以下命令:
cpio -icdvt < /dev/st0 > /tmp/st_content
有时可能因为备份的文件过多,一个屏幕无法显示完毕,此时我们利用下面命令,让磁带机的文件信息输出到文件。
将示例1中的备份包还原到相应的位置,如果有相同文件进行覆盖,使用以下命令:
cpio –icduv < /opt/etc.cpio
注意,cpio恢复的路径,如果cpio在打包备份的时候用的是绝对路径,那么在恢复的时候会自动恢复到这些绝对路径下,本例就会将备份文件全部还原到/etc路径下对应的目录中。同理,如果在打包备份用的是相对路径,还原时也将恢复到相对路径下。
通过上面的示例,可以看出,cpio无法直接读取文件,它需要每个文件或者目录的完整路径名才能识别读取,而find命令的输出刚好做到了这点,因此,cpio命令一般和find命令配合使用。其实,上面的示例我们已经看到了它们的组合用法。
4.关于kickstart自动安装
kickstart是一个定义了Linux安装过程的配置文件,比如要在系统中使用的时区、如何对驱动器进行分区、或者应该安装哪些软件包。有了这个文件可以解放双手,让Linux安装过程按照我们预先定义的要求进行自动化安装,同时部署大量主机时十分有用。一般centos系统安装后,会在root目录下生成一个名为anaconda-ks.cfg的kickstart配置文件。
用kickstart文件制作自动化安装CentOS系统(本文自作的ISO镜像安装完成后,已自动安装MySQL、java、node、ffmpeg、pdfutil、Ghostscript组件
首先准备kickstat文件
其次用Centos iso文件启动,
在菜单中,用上下键选择Install CentOS Linux8后,按Table键,在原有命令后追加inst.ks=http://192.168.56.1/ks.cfg
注意:192.168.56.1:5500是Visual Studio Code中模块组件Live Server提供,采用VirtualBox中Host-Only模式
其后自动安装开始,一直到接受许可需要人工操作
以下是ks.cfg配置文件内容:
#version=RHEL8
ignoredisk --only-use=sda
autopart --type=lvm
# Partition clearing information
#clearpart --none --initlabel
clearpart --all --initlabel --drives=sda
# Use graphical install
graphical
# Use CDROM installation media
cdrom
# Keyboard layouts
keyboard --vckeymap=us --xlayouts='us'
# System language
lang en_US.UTF-8
# Network information
network --bootproto=dhcp --device=enp0s3 --ipv6=auto --activate
network --hostname=localhost.localdomain
repo --name="AppStream" --baseurl=file:///run/install/repo/AppStream
# Root password
rootpw --iscrypted $6$MtvQ98M4wJDb9ojK$MB4SjABnEQo.JAFR8W1z3tEujkZmKu7Pks9vSX9wSR4lE0PKS69cmYFi2AV0BFrmIZM3odPVcYqiJ8GSCYFqZ1
# X Window System configuration information
xconfig --startxonboot
# Run the Setup Agent on first boot
firstboot --enable
# System services
services --enabled="chronyd"
# System timezone
timezone America/New_York --isUtc
user --name=super --password=$6$W7YXea6UI8nx5Dz0$GlsYcrDNWLI0G1VZ8yawqOWsX3O/yko11hd1FkRmU9Lhie5CGUrgZx9zUhlfG8Am6o64WofnGATPl73eNHjOB1 --iscrypted --gecos="super"
%packages
@^graphical-server-environment
kexec-tools
%end
%addon com_redhat_kdump --enable --reserve-mb='auto'
%end
%anaconda
pwpolicy root --minlen=6 --minquality=1 --notstrict --nochanges --notempty
pwpolicy user --minlen=6 --minquality=1 --notstrict --nochanges --emptyok
pwpolicy luks --minlen=6 --minquality=1 --notstrict --nochanges --notempty
%end