赞
踩
1)rpm软件包的构成
元数据:关于软件包的数据,包含软件包名称,版本,发布,构建程序,日期,依赖关系等
文件:软件包提供的文件,包含文件属性
脚本:安装软件、更新或删除软件包时,所执行的脚本
2) rpm软件包规则
如果是源代码构建的rpm包,又叫源码包,需要spec文件,通过spec文件所包含的配置,来完成如何构建rpm包。
3)源码包:是开发人员使用Python、java等高级语言写出来的代码。SHELL空间能够把用户输入的命令编译成二进制码,这样计算机才能识别命令并返回结果。同样地,源码包是SHELL无法直接翻译成二进制码的,所以需要对源码包进行编译使之成为可以被SHELL编译成二进制码的rpm包。
4)spec文件大致分为5个部分
简 介 ——列出关于软件包的元数据(名称、版本、许可证等)
构建说明 ——说明如何编写和准备软件
脚本小程序 ——说明安装、卸载或升级时要运行的命令
清 单 ——软件包文件列表及关于软件包安装的权限
changelog ——记录对此RPM软件包所做的更改
1)安装编译软件 #yum install gcc -y
2)将源码包解包/解压缩 #tar xvf e2fsprongs-*.tar
注:解压缩不同的包使用的命令参数使不同的,指定安装到某个目录用 –C
#tar xvfz xxx.tar.gz tar xvfj xxx.tar.bz2
3)进入解开的目录中: 检测编译环境 && 编译 && 安装
#cd e2fsprogs-*
#./configure && make && make install
注:
*)有时候是 ./config,如果目录下这两个都有,还是用 ./configure;
**)安装到指定目录./configure --prefix=目录;如 #./configure --prefix = /usr/local
***)#./configure -help | less 查看configure的参数用法;
****)在软件包中不乏有其他后缀的名字的2进制软件包,如 bin;run;bundle。安装方法:对程序增加执行权限即可执行,完成安装
例1:将xxx.rpm文件转换为cpio格式并提取其内容 #rpm2cpio xxx.rpm | cpio -idv
//-i 进入copy-in模式,-d 自动建立目录,-v 显示动作
例2:将xxx.rpm文件转换为cpio格式 #rpm2cpio xxx.rpm > xxx.cpio
例3:查看xxx.rpm文件中的内容 #rpm2cpio xxx.rpm | cpio -t
例4:仅提取指定文件123.txt #rpm2cpio xxx.rpm | cpio -idv ./123.txt
1)安装构建rpm包需要的软件 #yum install rpm-build gcc -y
注:gcc对源码包进行编译;rpm-build 对 .src.rpm 源码包进行重新打包为rpm软件包
2)使用rpm命令安装.src.rpm软件包
#rpm –ivh dos2unix-3.1-37.e16.src.rpm
注:i 是install安装的意思,v是动态显示安装过程,h是以#形式显示;有warning是可以忽略的,但是有error就说明安装有问题
3)安装rpm源码包后会生成一个rpmbuild目录,进入该目录中的SPECS目录下,按照编译文件对 .src.rpm软件包进行编译打包
#cd ~/rpmbuild/SPECS
#rpmbuild -ba dos2unix.spec
注1:rpmbuild 下面的source文件——对软件进行改写需要遵循该文件;specs——重新编写成rpm软件包需要根据这个文件进行
注2:rpmbuild命令是用来建立新的rpm/srpm包的。参数选项—— -ba就是生成rpm及src.rpm包;-bp 只做准备工作(解包及打补丁);-bc 准备环境并编译;-bi 编译并安装;-bl 检测文件是否备齐; -bb 仅生成rpm包; -bs 仅生成src.rpm包
4) 查看新生成的rpm软件包,并进行安装
#cd ~/rpmbuild/RPMS/x86_64
#rpm -ivh dos2unix-3.1-37.el7.centos.x86_64.rpm
注:debuginfo是测试的rpm软件包,不用安装这个
当需要在多个服务器上都安装某个软件包时,我们要么将软件包传到每个服务器上诸葛安装;要么搭建一个yum源服务器,然后在各个机子上下载并安装软件包。
1)安装httpd 服务器 #yum install httpd -y
安装createrepo软件 #yum install createrepo -y
注:createrepo用于生成解决软件间依赖关系的数据库文件。yum之所以能解决软件间的依赖关系是因为yum服务器有一个存放所有软件依赖关系的数据库文件——repodata
2)将需要安装的软件包转移至指定的目录下:
#mv dos2unix-3.1-37.el7.centos.x86_64.rpm /var/www/html/softs
注:softs是在/var/www/html下的自己创建的目录,也可以直接放在html下
生成softs目录下所有软件包依赖关系的数据库文件:
#createrepo -v /var/www/html/softs //这个目录要与上面的一致
3)删除Apache欢迎页面,启动服务
#rm -rf /etc/httpd/conf.d/welcome.conf
#systemctl restart httpd
4)用真实机浏览器访问该服务器: http://该服务器ip地址,会出现搭建好的服务器页面
1)配置yum源文件
#cd /etc/yum.repos.d
vim httpd.repo 内容如下:
[httpd]
name=xxx
baseurl=http://yum源服务器ip/softs
enabled=0
gpgcheck=0
注:指定软件包安装目录时一定要写对路径,ip后面什么都不写就是默认访问到/var/www/html ,而我们的软件包被存放在 /var/www/html/softs下面,因而要填上softs这个子目录
2)生成yum缓存文件 #yum makecache
3)安装软件 #yum install --enablerepo=httpd install dos2unix -y
1)安装ftp #yum install vsftpd -y
安装createrepo软件 #yum install createrepo -y
2)将需要安装的软件包转移至指定的目录下:
#mv dos2unix-3.1-37.el7.centos.x86_64.rpm /var/ftp/pub/
#cd /var/ftp/pub //ls可以看到里面只有一个软件包文件
#createrepo -v /var/ftp/pub //ls可以看见产生了repodata文件
3)重启服务 #systemctl restart vsftpd
1)进入到指定目录,配置yum源
#cd /etc/yum.repos.d/
#vim ftp.repo 内容如下
[ftp]
name=xxxxxx
baseurl=ftp://ftp源服务器ip/pub
enabled=0
gpgcheck=0
注:客户端登录到ftp源服务器默认是用匿名账户登录的,而匿名账户登陆的默认目录是 /var/ftp/ ,也就是说如果在指定安装路径时只写ftp源服务器的ip地址的话就会默认访问的是 /var/ftp ,而我们的软件包在 /var/ftp/pub/ 下,因而要在后面添加pub这个子目录
2)生成yum缓存文件 #yum makecache
3)安装软件 #yum install --enablerepo=ftp install dos2unix -y
4)在客户端登录ftp测试结果
1)安装所需软件: #yum install rpm-sign createrepo -y
确认有可用的gpg: #gpg --list-key
2)如果没有,则生成新的gpg #gpg --gen-key
3)确认gpg的公钥以便于数字签名
#gpg --list-key 命令中,含关键字pub 2048R/0A86BCE3
4)将公钥以ASCII导出成为RPM的GPG签名
#gpg -a -o /root/RPM-GPG-KEY-test --export 0A86BCE3
5)建立.rpmmacros文件添加公钥,编辑配置文件 #vim ~/.rpmmacros 内容如下
%_gpg_name 0A86BCE3
6)对dos2unix-3.1-37.centos.x86_64.rpm软件签名
#rpm --resign dos2unix-3.1-37.centos.x86_64.rpm
7)将RPM-GPG导入至RPM数据库中 #rpm --import /root/RPM-GPG-KEY-test
8)检查导入是否成功 #rpm -q gpg-pubkey-*
9)确认RPM包签名正确
#rpm –K dos2unix-3.1-37.centos.x86_64.rpm
10)将软件包通过ftp服务器发布 #yum install vsftpd -y
#mkdir -pv /var/ftp/pub/Packages
#cp /rpmbuild/RPMS/dos2unix-3.1-37.centos.x86_64.rpm /var/ftp/pub/Packages
#cp /root/RPM-GPG-KEY-test /var/ftp/pub/Packages
#createrepo -v /var/ftp/pub/Packages
确认生成repodata文件
1)在客户端下载RPM-GPG-KEY-test,并建立yum源安装软件
#scp root@192.168.1.2:/root/RPM-GPG-KEY-test /etc/yum.repos.d
2)客户端导入RPM-GPG-KEY-test #rpm --import RPM-GPG-KEY-test
3)编辑.repo文件,vim example.repo
[iso]
name=cold
baseurl=ftp://192.168.1.2/pub/Packages (baseurl=http://192.168.1.2/Packages)
enabled=1
gpgcheck=1
gpgkey=file:///etc/yum.repos.d/RPM-GPG-KEY-test
(gpgkey=ftp://192.168.1.2/pub/RPM-GPG-KEY-test)
4)生成缓存文件 #yum makecache;安装软件测试
转载请注明出处,谢谢!
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。