rpm命令的格式以及参数:
rpm
rpm -ivh name.rpm 安装,-v显示过程,-h指定加密方式为hash
rpm -e name 卸载,卸载写的是软件名字而不是安装包名字
rpm -ql 表示在系统哪些位置安装了软件
rpm -qc 查询软件的配置文件
rpm -qd 查询软件的文档,以及说明文件
rpm -qlp name.rpm 软件包如果安装了在系统安装位置
rpm -qa | grep httpd 查看安装了那些软件,| 表示过滤
rpm -q 查看软件安装了没有
rpm -qa |grep name 查看软件是否安装
rpm -qp name.rpm 查询软件包安装在系统之后叫什么名字
rpm -qf filename 查询某个文件属于哪个安装包
rpm -qi name 表示查看软件信息
rpm -p 表示查看软件包时加p
rpm -qp name.rpm --scripts 查询软件在安装或卸载过程中执行的动作
rpm -ivh name.rpm --force 强制安装,但不能忽略依赖性
rpm -ivh name.rpm --force --nodeps 忽略依赖性并强制安装
rpm -Kv name.rpm 检测软件包是否被篡改
注意几点:
nodeps表示忽略依赖性。
--force代表强制,只表示强制安装。
-qa与-q区别,前者是模糊的,后者是精确匹配。
rpm命令的演示:
[root@localhost software]# rpm -ivh linuxqq-v1.0.2-beta1.i386.rpm --nodeps 忽略依赖性安装
Preparing... ################################# [100%]
file /usr/bin from install of linuxqq-v1.0.2-beta1.i386 conflicts with file from package filesystem-3.2-18.el7.x86_64
[root@localhost software]# rpm -ivh linuxqq-v1.0.2-beta1.i386.rpm --nodeps --force 忽略依赖性强制安装
Preparing... ################################# [100%]
Updating / installing...
1:linuxqq-v1.0.2-beta1 ################################# [100%]
[root@localhost software]# rpm -qc openssh-server 查看软件的配置文件
/etc/pam.d/sshd
/etc/ssh/sshd_config
/etc/sysconfig/sshd
[root@localhost software]# rpm -qd openssh-server 查看软件的说明文档
/usr/share/man/man5/moduli.5.gz
/usr/share/man/man5/sshd_config.5.gz
/usr/share/man/man8/sftp-server.8.gz
/usr/share/man/man8/sshd.8.gz
[root@localhost software]# rpm -Kv linuxqq-v1.0.2-beta1.i386.back.rpm 检测软件包是否被篡改
linuxqq-v1.0.2-beta1.i386.rpm:
Header SHA1 digest: OK (9893064ebb5d9966a7e061e1c2017d189f5a8100)
MD5 digest: OK (5b35ffaf802861b72c0f2a615effdfdc)
[ro[root@localhost software]# ls
FluffyMcAwesome-A-6.4.0-11.r19335.x86_64.rpm
FluffyMcAwesome-B-6.4.0-11.r19335.x86_64.rpm
linuxqq-v1.0.2-beta1.i386.rpm
wps-office-10.1.0.5672-1.a21.x86_64.rpm
[root@localhost software]# cp linuxqq-v1.0.2-beta1.i386.rpm linuxqq-v1.0.2-beta1.i386.back.rpm 复制一个安装包改名字进行篡改实验
[root@localhost software]# ls
FluffyMcAwesome-A-6.4.0-11.r19335.x86_64.rpm
FluffyMcAwesome-B-6.4.0-11.r19335.x86_64.rpm
linuxqq-v1.0.2-beta1.i386.back.rpm
linuxqq-v1.0.2-beta1.i386.rpm
wps-office-10.1.0.5672-1.a21.x86_64.rpm
[root@localhost software]# echo hello >>linuxqq-v1.0.2-beta1.i386.back.rpm 将hello重定向到安装包里面
[root@localhost software]# rpm -Kv linuxqq-v1.0.2-beta1.i386.back.rpm 检测安装包已经被损坏
linuxqq-v1.0.2-beta1.i386.back.rpm:
Header SHA1 digest: OK (9893064ebb5d9966a7e061e1c2017d189f5a8100)
MD5 digest: BAD Expected(5b35ffaf802861b72c0f2a615effdfdc) != (859a597856638c57ea82ed3056f2dcad)
ot@localhost software]# rpm -qf /bin/ls 查看文件属于哪个软件包
coreutils-8.22-11.el7.x86_64
安装:
更改安装包内容进行篡改:
第三方软件仓库的搭建,gpgcheck表示第三方软件
vim /etc/yum.repos.d/xxx.repo(文件内容)
[software]
name=software
baseurl=file:///rpm存放目录
gpgcheck=0
yum clean all
搭建网络源,安装httpd,关闭防火墙,disable开机关闭防火墙enable httpd开机自启动
[root@localhost software]# ls
FluffyMcAwesome-A-6.4.0-11.r19335.x86_64.rpm
FluffyMcAwesome-B-6.4.0-11.r19335.x86_64.rpm
linuxqq-v1.0.2-beta1.i386.rpm
wps-office-10.1.0.5672-1.a21.x86_64.rpm
[root@localhost software]# createrepo . 生成软件数据包
Spawning worker 0 with 4 pkgs
Workers Finished
Saving Primary metadata
Saving file lists metadata
Saving other metadata
Generating sqlite DBs
Sqlite DBs complete
[root@localhost software]# ls
FluffyMcAwesome-A-6.4.0-11.r19335.x86_64.rpm
FluffyMcAwesome-B-6.4.0-11.r19335.x86_64.rpm
linuxqq-v1.0.2-beta1.i386.rpm
repodata 已经生成
wps-office-10.1.0.5672-1.a21.x86_64.rpm
[root@localhost software]# cd repodata/
[root@localhost software]# vim /etc/yum.repos.d/rhel_dvd.repo 编辑文件
[root@localhost software]# yum clean all
Loaded plugins: langpacks
Cleaning repos: software source7.0
Cleaning up everything
[root@localhost software]# yum repolist
Loaded plugins: langpacks
source7.0 | 4.1 kB 00:00
(1/2): source7.0/group_gz | 134 kB 00:00
(2/2): source7.0/primary_db | 3.4 MB 00:00
repo id repo name status
source7.0 source7.0 4,305
repolist: 4,305
[root@localhost software]# cp -r /mnt/software/ /var/www/html/
cp: cannot create directory ‘/var/www/html/’: No such file or directory 复制不了的原因就是我们必须下载共享然后打开httpd关闭防火墙
[root@localhost software]# yum install httpd -y 安装后就可以共享
Complete!
[root@localhost software]# systemctl start httpd 开启服务
[root@localhost software]# systemctl enable httpd 开机自启动
ln -s '/usr/lib/systemd/system/httpd.service' '/etc/systemd/system/multi-user.target.wants/httpd.service'
[root@localhost software]# systemctl stop firewalld 关闭防火墙
[root@localhost software]# systemctl disable firewalld 开机关闭
rm '/etc/systemd/system/basic.target.wants/firewalld.service'
rm '/etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service'
[root@localhost software]# cp -r /mnt/software/ /var/www/html/ 这样就可以复制
生成软件数据包:
搭建第三方软件源仓库:
文件内容:
搭建网络源,首先安装阿帕奇
yum install httpd -y,搭建完成后就可以复制。
测试是否搭建好:
由于这些操作是在虚拟机完成,所以我们在真机测试,打开火狐浏览器输入172.25.254.121/software/此处输入的为虚拟机的ip。
屏蔽yum仓库的软件包
[root@localhost ~]# yum list 内容较多不展示
[root@localhost ~]# vim /etc/yum.conf
写入exclude=*.i686
[root@localhost ~]# yum list 查看时就没有了32位的安装包
[root@localhost ~]# yum list linuxqq 查看Linuxqq的安装包
Loaded plugins: langpacks
Installed Packages
linuxqq.i386 v1.0.2-beta1 installed
[root@localhost ~]# vim /etc/yum.conf
写入exclude=*.i686 *.i386
[root@localhost ~]# yum list linuxqq 出来包的原因是linuxqq已经被我安装
Loaded plugins: langpacks
Installed Packages
linuxqq.i386 v1.0.2-beta1 installed
[root@localhost ~]# rpm -e linuxqq 卸载linuxqq
[root@localhost ~]# yum list linuxqq 查看包的时候已经被屏蔽
Loaded plugins: langpacks
Error: No matching Packages to list
屏蔽32位安装包文件编写:
屏蔽linuxqq文件编写:
操作演示:
kickstart概述
使用kickstart,系统管理员可以创建一个包含安装期间所有常见问题的答案的文件,以可以直接安装虚拟机。
软件包 system-config-kickstart
安装 yum install syatem-config-kickstart
[root@localhost software]# yum install httpd system-config-kickstart -y 安装阿帕奇和kickstart
Complete!
[root@localhost ~]# system-config-kickstart 打开设置问题答案界面,进行配置以保证虚拟机可以自动安装。(用真机连接虚拟机时必须加-X开启图形以显示界面)
[root@localhost mnt]# systemctl start httpd 打开阿帕奇
[root@localhost mnt]# systemctl stop firewalld 关闭防火墙
然后在真机输入172.25.254.121/ks.cfg就可以看到自己刚才的操作。
[root@localhost ~]# cd /var/www/html/
[root@localhost html]# ls
ks.cfg software
[root@localhost html]# vim ks.cfg
%packages
@base
lftp
%end
[root@localhost html]# ksvalidator ks.cfg 只可以检查语法
安装阿帕奇和kickstart,打开设置问题界面:
连接虚拟机时加-X是为了打开图形。
设置第一步,密码:
设置第二步,设置http,为自己的yum源。(我们要保证输入的yum源在浏览器也可以访问到)
设置第三步:
设置第四步:
点击底下的add添加分区:
设置第五步,添加动态网络:
设置第六步,默认:
设置第七步,关闭防火墙。
后面的都默认即可,然后点击文件保存到/var/www/html里面即可,然后关闭。
打开阿帕奇,关闭防火墙:
在真机输入172.25.254.121/ks.cfg进行测试:
虚拟机操作完成:
编辑文件内容:
接下来在真机操作:这个必须配置过dhcp才可以进行实验。
配置dhcp:
[root@foundation84 Desktop]# yum install dhcp 安装dhcp
Loaded plugins: langpacks, product-id, subscription-manager
This system is not registered to Red Hat Subscription Management. You can use subscription-manager to register.
Package 12:dhcp-4.2.5-36.el7.x86_64 already installed and latest version
Nothing to do
[root@foundation84 Desktop]#systemctl start dhcpd 打开dhcp服务
[root@foundation84 Desktop]# cp /usr/share/doc/dhcp-4.2.5/dhcpd.conf.example /etc/dhcp/dhcpd.conf 复制这里我已经复制好了
cp: overwrite ‘/etc/dhcp/dhcpd.conf’? ^C
[root@foundation84 Desktop]# vim /etc/dhcp/dhcpd.conf 修改配置文件
[root@foundation84 Desktop]# systemctl restart dhcpd 重启dhcp服务
拔掉网线进行调用脚本时,才可以给虚拟机分配IP:
[root@foundation21 mnt]# vim westos.sh 编辑脚本
#!/bin/bash
virt-install \
--ram 1024 \
--cpus 1 \
--disk /var/lib/libvirt/images/$1.qcow2,size=8,bus=virtio \
--name $1 \
--network source=br0,model=virtio \
--location http://172.25.254.21/source7.2 \
--extra-args "ks=http://172.25.254.121/ks.cfg" &
[root@foundation21 mnt]# chmod +x /mnt/westos.sh 赋予权限
[root@foundation21 mnt]# /mnt/westos.sh srr 调用
我们可以看到通过调用就会自己进行安装。
我的真机是7.1版本的,所以脚本写7.1。
因为之前做过永久挂载,可以通过df命令查看。
[root@foundation84 mnt]# df 查看挂载
Filesystem 1K-blocks Used Available Use% Mounted on
/dev/sda12 124457600 56178124 68279476 46% /
devtmpfs 3863288 0 3863288 0% /dev
tmpfs 3873420 504 3872916 1% /dev/shm
tmpfs 3873420 9372 3864048 1% /run
tmpfs 3873420 0 3873420 0% /sys/fs/cgroup
/dev/sda10 198380 105644 92736 54% /boot
/dev/sda9 204580 9700 194880 5% /boot/efi
/dev/loop0 3654720 3654720 0 100% /var/www/html/source7.0
/dev/loop1 3798292 3798292 0 100% /var/www/html/source7.1
查看挂载:
安装过程:
登陆用户密码就可以进入虚拟机,虚拟机建立成功。