RPM包管理
概述
rpm包在安装的光盘中
32位操作系统:支持最大内存
4G
(内存 寻址空间 2^32)64位操作系统:支持最大内存
192G
,但是受到当前主流民用主板技术的影响,只能加到16G的内存。32位的系统只能装32位软件,64位的向下兼容32位和64位
安装
# 挂载 [root@localhost mnt]# mount /dev/cdrom /mnt mount: /dev/sr0 is write-protected, mounting read-only [root@localhost mnt]# [root@localhost mnt]# pwd /mnt [root@localhost mnt]# ls CentOS_BuildTag GPL LiveOS RPM-GPG-KEY-CentOS-7 EFI images Packages RPM-GPG-KEY-CentOS-Testing-7 EULA isolinux repodata TRANS.TBL # rpm包拆分 `vsftpd-3.0.2-10.el7.x86_64.rpm` vsftpd:包名 3.0.2:主版本 10:次版本 el7:发行平台(企业级linux) x86_64:架构(64位,安装取决于系统的架构) # 安装rpm包(rpm -i rpmfile) rpm -i vsftpd-3.0.2-10.el7.x86_64.rpm `-i:install安装` # 卸载(rpm -e 包名) rpm -e vsftpd `-e:erase移除已安装的软件包 `-v:verbose打印安装信息,接多个v越多越详细 `-h:打印进度条 [root@localhost Packages]# rpm -ivh vsftpd-3.0.2-10.el7.x86_64.rpm Preparing... ################################# [100%] Updating / installing... 1:vsftpd-3.0.2-10.el7 ################################# [100%] `#:一个#号代表%2 # 覆盖安装 `--replacepkgs `--force强制 [root@localhost Packages]# rpm -ivh vsftpd-3.0.2-10.el7.x86_64.rpm --replacepkgs Preparing... ################################# [100%] Updating / installing... 1:vsftpd-3.0.2-10.el7 ################################# [100%] # 查询 rpm -q 包名 `-q:查询指定的软件包 `-a:查询系统所有软件包 `-V:查询文件内容是否被修改 `-i:查看软件的详细信息 `-R:查看软件包的依赖 rpm -qf 文件名 `-f:查询文件是安装什么软件生成的 # 升级 rpm -U rpmfile `-U:是否安装都升级 rpm -F rpmfile `-F:原来装过才能升级
依赖关系
软件与软件之间有
依赖关系
# 忽略依赖安装,安装完,服务不能用的,用于测试 [root@localhost Packages]# rpm -ivh httpd-2.4.6-40.el7.centos.x86_64.rpm --nodeps Preparing... ################################# [100%] Updating / installing... 1:httpd-2.4.6-40.el7.centos ################################# [100%]
解压缩rpm文件
在生产环境中,不能直接对软件重新安装,可能会对业务造成影响,所以通过
rpm2cpio
来解压rpm软件包,将重要的配置文件替换生产环境中的文件即可[root@localhost rpm]# rpm2cpio vsftpd-3.0.2-10.el7.x86_64.rpm | cpio -id 715 blocks [root@localhost rpm]# ls etc usr var vsftpd-3.0.2-10.el7.x86_64.rpm
rpm公钥与私钥
开源后,都需要用私钥来做数字签名,rpm的公钥给用户解密,私钥给自己加密
[root@localhost rpm]# rpm -qa|grep pubkey gpg-pubkey-352c64e5-52ae6884 gpg-pubkey-f4a80eb5-53a7ff4b gpg-pubkey-621e9f35-58adea78 # 导入公钥 [root@localhost rpm]# rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7 [root@localhost rpm]# rpm -K /mnt/Packages/vsftpd-3.0.2-10.el7.x86_64.rpm /mnt/Packages/vsftpd-3.0.2-10.el7.x86_64.rpm: rsa sha1 (md5) pgp md5 OK `rpm --import 导入公钥 `rpm -K rpmfile
YUM
概述
什么是yum?
红帽为了解决软件包的依赖关系的一个安装方式,yum可以自动安装依赖关系
全称:yellow update modifier
# 挂载 mount /dev/cdrom /mnt/ # 编写.repo文件 [root@localhost yum.repos.d]# cat redhat.repo [redhat] `仓库名 name=repo `仓库描述信息 baseurl=file:///mnt `仓库路径(file://表示本地路径 本地源(http/ftp:网络源)) enalbed=1 `是否启用仓科 0或1 gpgcheck=1 `是否校验软件包的完整性 0或1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7 `校验公钥 #清空缓存与生成新的缓存 [root@localhost repodata]# yum clean all && yum makecache fast Loaded plugins: fastestmirror, langpacks Cleaning repos: redhat Cleaning up list of fastest mirrors Other repos take up 1.4 G of disk space (use --verbose for details) Loaded plugins: fastestmirror, langpacks redhat | 3.6 kB 00:00:00 (1/2): redhat/group_gz | 155 kB 00:00:00 (2/2): redhat/primary_db | 2.8 MB 00:00:00 Determining fastest mirrors Metadata Cache Created
yum如何得知软件包之间的依赖关系
repodata目录xml的文件记录了包与包之间的关系,被称为yum的数据库,
baseurl=file:///mnt指向
yum的使用
# 安装软件 yum install vsftpd `-y:yes确认安装 `-d:download下载(如果配置的是本地源不会自动下载,如果是网络源就会下载,下载路 径:/var/cache/yum/x86_64/7/updates/packages) `-N:no取消安装 # 解决依赖安装 yum localinstall rpmfile # 卸载软件 yum remove vsftpd # 查看系统中所有软件包 yum list all [root@docker-test packages]# yum list all | wc -l 24483 [root@docker-test packages]# yum list all | head -n 5 Installed Packages GeoIP.x86_64 `包名.架构` 1.5.0-11.el7 `主次版本.社区版Linux7` @base `所在仓库,@表现系统已安装` # 查看已安装 yum list installed # 查看可更新 yum list updates # 查看可用软件包 yum list available # 搜索仓库是否有该软件包 yum search httpd # 全局搜索命令属于哪个软件包 yum provides "*/vsftpd" `*/表示任意目录,安装带有/usr/sbin的` logwatch-7.4.0-28.20130522svn140.el7.noarch : A log file analysis program Repo : redhat Matched from: Filename : /usr/share/logwatch/scripts/services/vsftpd man-pages-overrides-7.2.4-1.el7.x86_64 : Complementary and updated manual pages Repo : redhat Matched from: Filename : /usr/share/doc/man-pages-overrides-7.2.4/vsftpd vsftpd-3.0.2-10.el7.x86_64 : Very Secure Ftp Daemon Repo : redhat Matched from: Filename : `/usr/sbin`/vsftpd Filename : /etc/logrotate.d/vsftpd Filename : /etc/vsftpd Filename : /etc/pam.d/vsftpd
包组
定义一部分软件,包的功能选项
安装包组:
yum groupinstall
查看包组:
yum groups list
extras
available
sdfsdf
制作yum源
如何制作
1、将软件的所有依赖包都提前准备好
# 创建yum源 [root@localhost repo]# ll total 2788 -rw-r--r--. 1 root root 2846724 Nov 18 2020 httpd-2.4.6-97.el7.centos.x86_64.rpm drwxr-xr-x. 2 root root 4096 Jul 6 16:16 repodata [root@localhost repo]# pwd /home/repo 在当前目录下创建生成repodata:`createrepo -v . # 在/etc/yum.repos.d目录下创建repo文件 [root@localhost yum.repos.d]# pwd /etc/yum.repos.d [root@localhost yum.repos.d]# cat dd.repo [rhel7] name=repo baseurl=file:///home/repo enabled=1 gpgcheck=0
源码编译安装
1、将源码软件包拷贝到linux系统中
2、解压缩
3、进入软件包文件夹执行./configure
4、make
5、make install
TAR打包
先打包再压缩
tar cf test.tar CentOS7-Base-163.repo `-c:create打包 `-f:指定文件名 `-x:解包 `-t:查看包的内容 `-v:打印详细信息 `-z:压缩gzip `-j:压缩bz2 `-J:压缩xz
TAR解压缩
先打包再压缩
# 压缩三大神器 xz压缩率最好 gzip:-z 压缩:`tar -zcvf rpm.tar.gz rpm.tar 解压:`tar -zxvf rpm.tar.gz bz2:--bzip2 -j 压缩:`tar -jcvf rpm.tar.bz2 rpm.tar 解压:`tar -jxvf rpm.tar.bz2 xz:-J 压缩:`tar -Jcvf rpm.tar.xz rpm.tar 解压:`xz -d rpm.tar.xz -d:decompress