如何根据指定软件版本制作属于自己的puppet yum源
1、RPM的概述及用途 1)RPM包管理工具(简称RPM,全称为The RPM Package Manager)是在Linux下广泛使用的软件包管理器。
最早由Red Hat研制,现在也由开源社区开发。
RPM通常随附于Linux发行版,但也有单独将RPM作为应用软件发行的发行版。
RPM仅适用于安装用RPM来打包的软件,目前是GNU/Linux下软件包资源最丰富的软件包类型xxx-version.rpm --redhat suse....xxx-veriosn.deb --debian/ubuntu2)RPM包管理具体的用途; 1、快速安装、删除、升级和管理软件,也支持在线安装和升级软件; 2、通过RPM包管理能知道软件包包含哪些文件,也能知道系统中的某个文件属于哪个软件包; 3、可以在查询系统中的软件包是否安装以及其版本; 4、作为开发者可以把自己的程序打包为RPM包发布,减少软件安装前的配置及编译所花耗的时间; 5、软件包签名GPG和MD5的导入、验证和签名发布,防止软件被篡改。
6、依赖性的检查,查看是否有软件包由于不兼容而扰乱了系统; 3 ) RPM打包需要注意的地方 为了自己打的rpm包能在其他系统正常使用,系统环境一致是必须的,当然你在centos6.3 上打包的软件在某些情况也能正常在centos6.4上面安装使用,但不推荐这么做,包装宿主系统一致性,是rpm安装的基本条件,另外,rpm包最难解决的是依赖问题,没错。
rpm包能通过yum安装,并自动检查依赖关系,但有个问题,比如你打包nginx的时候依赖于gd库,打包的时候通过网络yum源安装了一个gd包,但在宿主系统安装的时候,也许没有网络,但光盘里面有gd包,也许你可以通过关盘安装gd库。
但你不能保证gd库的版本和之前打包nginx的时候是一样的。
一般来说光盘里面的gd库大部分都比网络yum源的版本要低,所以并不能保证nginx的正常使用,因为我们都不知道gd库的升级到底升级了些什么东西。
我们的解决办法是在打包的时候,记下来打包的时候他的打包需要依赖一些什么包,在并把这些包download下来。
在宿主系统安装这些包,当然这些包本身也有依赖关系。
所以你得一层层找出所有依赖关系,并依此安装。
2 、rpm包制作过程 1. 安装工具 yum –y install rpm-build 2. 创建目录 3. 打包目录介绍 BUILD--源码解压目录 RPMS--RPM包(成品) SOURCES--源码的目录(tar.gz) SPECS--xx.spec(makefile) SRPMS--src.rpm=xx.spec+tar.gz(我们并不使用) BUILDROOT -- rpm打包安装临时目录,rpm打包过程相当于安装,只是安装路径会在本目录,而不会去系统目录。
4. spec文件实例 mkdir -p $HOME/rpmbuild/{BUILD,RPMS,SOURCES,SPECS,SRPMS,BUILDROOT} 虽然很多文档不推荐使用root用户打包rpm包,但为了方便我们还是使用了root账号,只要打包的时候注意哈,还是不会出问题的。
5 . 开始打包 在SPECS目录执行 rpmbuild –bb nginx.spec ,同时记下来安装过程所提示需要安装的包。
这个命令会按照我们的spec 指定的方式编译软件并且会在/root/rpmbuild/RPMS/x86_64/ 目录生成对应的rpm包,这个rpm包默认会记录在这个软件编译过程中会依赖于哪些其他软件,再次强调,如果你打包的时候和你安装的时候环境不一样,一定要注意在安装rpm之前手动安装好依赖,解决可能会出现的版本过低的问题。
6. 开始定制iso 1、 上centos 网站下载一个完整的centos光盘,并在虚拟机上挂载到/mnt 目录Mount –o loop /dev/cdrom /mnt 2、 copy 光盘文件到定制iso目录,这个拷贝主要是光盘挂载目录不可写问题,所以必须拷贝出来mkdir /isocp /mnt/* /iso 上面的拷贝默认是不拷贝隐藏文件的,所以关盘的根目录有两个隐藏文件,所以必须手动拷贝过来,具体这里就不说了。
3 创建自己软件的目录 mkdir /iso/lnmpcp /root/rpmbuild/RPMS/x86_64/* /iso/lnmp4 修改/iso/isolinux/ 目录下的文件 注意我们引用了一个*.cfg 的文件,这个文件则是我们定制系统的关键所在,这个文件将以附件的形式存在!5第一次打包cd /isomkisofs -o gzyouai_centos_6.4.iso -b isolinux/isolinux.bin -c isolinux/boot.cat -no-emul-boot -boot-load-size 4 -boot-info-table -R -J -v -T ./6 安装第一次打包系统7 记录安装好的系统的install.log 文件 里面有这次安装装了哪些软件,里面的内容需要手动添加.rpm 后缀,而且还有一些特殊的行需要删除,拷贝这个文件到打包系统,想办法踢出/iso/Packages/ 中无用的软件包!把无用的软件包删除。
cd /iso/Packages/createrepo ./按照第五步 重新打包并安装。
这样系统才会不那么臃肿。
在ubuntu上安装yum会怎样
展开全部Yum,(YellowDogUpdater,modified)是一个shell前端软件包管理器,基于rpm包的管理,能从指定服务器上下载并自动安装软件包。
能自动处理依赖性关系并一次安装所有依赖的软件包。
安装软件包的时候,yum首先查询本地数据库系统是否已经安装了该软件包,如果没有,检查依赖性冲突,若没冲突,则安装,否则报告。
配置文件内容简介:[]内的是仓库的名字name仓库的描述baseurl是你的YUM源地址,因为这里配置的是本地的,还可以是HTTP,FILE等enabled是否启用这个仓库,1为起用,0为禁用gpgcheck是否检查GPG签名(用来验证要安装的包是不是REDHAT官方的)GPGKEY的存放地址需要用下面的命令到入这个签名。
vim/etc/yum.repos/server.repo[server]name=serverbaseurl=/pub/x86_64/Serverenabled=1#代表启用gpgcheck=0yum–yinstalllftp*
如何查看ubuntu的源代码
下面以查看ls这个命令的源代码为例:1.输入 which lsliuwei@liuwei:~/test$ which ls/bin/ls2.输入sudo dpkg -S /bin/lsliuwei@liuwei:~/test$ sudo dpkg -S /bin/lscoreutils: /bin/ls3.输入sudo apt-get source coreutilsliuwei@liuwei:~/test$ sudo apt-get source coreutils正在读取软件包列表... 完成正在分析软件包的依赖关系树 正在读取状态信息... 完成 需要下载 12.3 MB 的源代码包。
获取:1 http://debian.ustc.edu.cn/ubuntu/ trusty/main coreutils 8.21-1ubuntu5 (dsc) [1,335 B]获取:2 http://debian.ustc.edu.cn/ubuntu/ trusty/main coreutils 8.21-1ubuntu5 (tar) [12.3 MB]获取:3 http://debian.ustc.edu.cn/ubuntu/ trusty/main coreutils 8.21-1ubuntu5 (diff) [30.6 kB]下载 12.3 MB,耗时 56秒 (218 kB/s) gpgv: 于 2014年03月24日 星期一 15时03分17秒 CST 创建的签名,使用 DSA,钥匙号 C6CEA0C9gpgv: 无法检查签名:找不到公钥dpkg-source: 警告: 对 ./coreutils_8.21-1ubuntu5.dsc 校验签名失败dpkg-source: info: extracting coreutils in coreutils-8.21dpkg-source: info: unpacking coreutils_8.21.orig.tar.gzdpkg-source: info: applying coreutils_8.21-1ubuntu5.diff.gz此时可能会发生如上所述的找不到公钥的情况,解决方法如下:先sudo apt-get udpateliuwei@liuwei:~/test$ sudo apt-get update再输入 gpg --keyserver subkeys.pgp.net --recv C6CEA0C9,其中C6CEA0C9为上述钥匙号liuwei@liuwei:~/test$ gpg --keyserver subkeys.pgp.net --recv C6CEA0C9gpg: 下载密钥'C6CEA0C9',从 hkp 服务器 subkeys.pgp.netgpg: 公钥服务器超时gpg: 从公钥服务器接收失败:公钥服务器错误此时可能会出现从公钥服务器接收失败:公钥服务器错误的提示,解决方法如下:输入sudo apt-get updateliuwei@liuwei:~/test$ sudo apt-get update再gpg --keyserver subkeys.pgp.net --recv C6CEA0C9liuwei@liuwei:~/test$ gpg --keyserver subkeys.pgp.net --recv C6CEA0C9gpg: 下载密钥'C6CEA0C9',从 hkp 服务器 subkeys.pgp.netgpg: 密钥 C6CEA0C9:公钥“Adam Conrad ”已导入gpg: 没有找到任何绝对信任的密钥gpg: 合计被处理的数量:1gpg: 已导入:1再gpg --export --armor C6CEA0C9 | sudo apt-key add -liuwei@liuwei:~/test$ gpg --export --armor C6CEA0C9 | sudo apt-key add -OK此时再 ls,会发现多出了如下文件:liuwei@liuwei:~/test$ lscoreutils-8.21 coreutils_8.21-1ubuntu5.dsccoreutils_8.21-1ubuntu5.diff.gz coreutils_8.21.orig.tar.gz在coreutils-8.21中就可以查看源码了。
如何查看ubuntu的源代码
展开全部 下面以查看ls这个命令的源代码为例:1.输入 which lsliuwei@liuwei:~/test$ which ls/bin/ls2.输入sudo dpkg -S /bin/lsliuwei@liuwei:~/test$ sudo dpkg -S /bin/lscoreutils: /bin/ls3.输入sudo apt-get source coreutilsliuwei@liuwei:~/test$ sudo apt-get source coreutils正在读取软件包列表... 完成正在分析软件包的依赖关系树 正在读取状态信息... 完成 需要下载 12.3 MB 的源代码包。
获取:1 http://debian.ustc.edu.cn/ubuntu/ trusty/main coreutils 8.21-1ubuntu5 (dsc) [1,335 B]获取:2 http://debian.ustc.edu.cn/ubuntu/ trusty/main coreutils 8.21-1ubuntu5 (tar) [12.3 MB]获取:3 http://debian.ustc.edu.cn/ubuntu/ trusty/main coreutils 8.21-1ubuntu5 (diff) [30.6 kB]下载 12.3 MB,耗时 56秒 (218 kB/s) gpgv: 于 2014年03月24日 星期一 15时03分17秒 CST 创建的签名,使用 DSA,钥匙号 C6CEA0C9gpgv: 无法检查签名:找不到公钥dpkg-source: 警告: 对 ./coreutils_8.21-1ubuntu5.dsc 校验签名失败dpkg-source: info: extracting coreutils in coreutils-8.21dpkg-source: info: unpacking coreutils_8.21.orig.tar.gzdpkg-source: info: applying coreutils_8.21-1ubuntu5.diff.gz此时可能会发生如上所述的找不到公钥的情况,解决方法如下:先sudo apt-get udpateliuwei@liuwei:~/test$ sudo apt-get update再输入 gpg --keyserver subkeys.pgp.net --recv C6CEA0C9,其中C6CEA0C9为上述钥匙号liuwei@liuwei:~/test$ gpg --keyserver subkeys.pgp.net --recv C6CEA0C9gpg: 下载密钥'C6CEA0C9',从 hkp 服务器 subkeys.pgp.netgpg: 公钥服务器超时gpg: 从公钥服务器接收失败:公钥服务器错误此时可能会出现从公钥服务器接收失败:公钥服务器错误的提示,解决方法如下:输入sudo apt-get updateliuwei@liuwei:~/test$ sudo apt-get update再gpg --keyserver subkeys.pgp.net --recv C6CEA0C9liuwei@liuwei:~/test$ gpg --keyserver subkeys.pgp.net --recv C6CEA0C9gpg: 下载密钥'C6CEA0C9',从 hkp 服务器 subkeys.pgp.netgpg: 密钥 C6CEA0C9:公钥“Adam Conrad ”已导入gpg: 没有找到任何绝对信任的密钥gpg: 合计被处理的数量:1gpg: 已导入:1再gpg --export --armor C6CEA0C9 | sudo apt-key add -liuwei@liuwei:~/test$ gpg --export --armor C6CEA0C9 | sudo apt-key add -OK此时再 ls,会发现多出了如下文件:liuwei@liuwei:~/test$ lscoreutils-8.21 coreutils_8.21-1ubuntu5.dsccoreutils_8.21-1ubuntu5.diff.gz coreutils_8.21.orig.tar.gz在coreutils-8.21中就可以查看源码了。
如何建立自己的离线yum源
在创建之前,我们先了解些相关的内容:yum仓库可以支持三种途径提供给yum在安装的时候下载rpm包第一种: ftp服务 ftp://第二种: http服务 http://第三种: 本地文件 file://我们暂且可以将yum的安装分为客户端和服务器端,当然你的客户端和服务器端可以是一台主机 ,我们今天介绍的就是在一台主机上完成的。
客户端就是我们用yum来安装rpm包的主机,其中也需要提供一些配置文件 定义yum的一些属性 以及告诉yum仓库在哪个地方等等服务器端必须有配置好的yum仓库 yum仓库能正常的提供下载功能yum客户端的配置文件有两部分组成1:/etc/yum.conf 主配置文件 定义了全局属性,调试级别,日志文件保存位置等等信息2:/etc/yum.repos.d/目录下每一个以repo结尾的文件 其中定义了yum仓库的名字,指向等信息, 此文件是我们今天要在客户端配置的文件切入正题,简单的创建步骤如下:1:#mount /dev/cdrom /media/cdrom 将镜像光盘挂载到cdrom目录下#cd /media/cdrom/Server 切换到/media/cdrom/Server目录中,#rpm –ivh createrepo-0.4.11-3.e15.noarch.rpm 安装createrepo软件包(如果你已经有安装过createrepo这个软件包 此步可以跳过)2 : # createrepo /var/yum 在/var/yum目录下创建yum源 当然此目录得事先存在,你也可以指定其他路径,完成之后你会发现目录/var/yum中有个repodata的目录 说明已安装成功 但是里面是没有rpm包的 你可以将镜像文件中Server目录下 的rpm包拷贝过来使用#cp /media/cdrom/Server/*.rpm /var/yum 将server目录下的所有rpm包拷贝到/var/yum中3:#vim /etc/yum.repos.d/yum.repo 编辑yumm.repo文件 此文件是我新建的一个repo结尾的文件,可按自己需求命名编辑的内容如下 :[yum] 指定yum源的识别名name=yum 指定yum源的完整名称baseurl=file:///var/yum 指定yum源的路径gpgcheck=0 是否检查签名0为不检查enable=1 是否启用yum源 1为启用你也可以在这个文件中写入多个这样的yum源 ,如果你的ftp或者http服务器上有创建好的的yum源 ,也可以指定ftp服务器上或者http服务器的路径,来使用服务器上的yum源 例如baseurl=http://192.168.0.1/Server 其他几项可按照自己的要求来写入即可。
此时我们的yum源已经创建成功 用 #yum repolist 查询当前可用的yum源。
yum源若成功创建,你再安装rpm包的时候,yum命令会自动在你所指定的路径下去下载所依赖的软件包了。
yum 更新源和 软件仓库的区别
linux下yuminstall的软件源位置是通过配置文件来配置的,可修改。
/etc/yum.repos.d为本地源位置配置文件/etc/yum.conf中,详细定义了yum的工作方式和参数。
[root@bspdevetc]#cat/etc/yum.conf[main]//主配置信息cachedir=/var/cache/yum//保存缓存和数据库文件的位置keepcache=0debuglevel=2//调试信息输出等级logfile=/var/log/yum.log//日志位置distroverpkg=redhat-release//yum使用的RPM包distribution版本;tolerant=1//默认为0,如果为1表示当安装多个包是,失败了继续安装其他;exactarch=1//精确匹配硬件平台,只有完全相同才更新;obsoletes=1//当使用升级模式时,一些包没有用了,可以删除(取值1)gpgcheck=0//安装时是否检查RPM包的PGP签名;plugins=1//Yum插件是否可用bugtracker_url=目录enable=1gpgcheck=0~
yum安装软件包时报错,求助
你这不是错误,只需要把提示的rpm--importpublic.gpg.key执行一遍后,在运行yuminstall就好了。
那个Loadedplugins:fastestmirror,langpacks并非错误。
而是两者插件。
fastest是最快的,mirror是镜像。
所以,fastestmirror是帮助你找到最快捷的yum仓库的插件,lang是language语言的缩写,packs是packages包裹的缩写,langpacks是语言包插件。
不建议,采用在/etc/yum.repos.d目录中打开.repo文件,将gpgcheck=1改成0,GPGCHECK是检查软件包是否被篡改的一个重要工具。
1是启用,0是禁用。
把它由1改0,等于放弃安全检查。
这无异于把自己家的大门拆掉,窗户打开防盗网卸掉。
随便什么人,什么时间都能进你家来。
自己玩玩linux可以,在生产环境中,最好别这么做。
如何创建商店应用程序的软件包签名证书
为什么要签名①应用程序升级:如果你希望用户无缝升级到新的版本,那么你必须用同一个证书进行签名。
这是由于只有以同一个证书签名,系统才会允许安装升级的应用程序。
如果你采用了不同的证书,那么系统会要求你的应用程序采用不同的包名称,在这种情况下相当于安装了一个全新的应用程序。
如果想升级应用程序,签名证书要相同,包名称要相同!②应用程序模块化:Android系统可以允许同一个证书签名的多个应用程序在一个进程里运行,系统实际把他们作为一个单个的应用程序,此时就可以把我们的应用程序以模块的方式进行部署,而用户可以独立的升级其中的一个模块 ③代码或者数据共享:Android提供了基于签名的权限机制,那么一个应用程序就可以为另一个以相同证书签名的应用程序公开自己的功能。
以同一个证书对多个应用程序进行签名,利用基于签名的权限检查,你就可以在应用程序间以安全的方式共享代码和数据了。
如何使用Android Studio 进行签名Build → Generate Signed APK→Greate new...Key store path:秘钥仓库的路径,比如C:\AndroidSDK20160322\sdk\key.jks试试,红色的部分名字可以自己起,但后缀必须是 .jks ,Password: 输入秘钥仓库的密码,比如: lait.....Confirm: 确认秘钥仓库的密码,比如: lait......key-------------------------------------------------------Alias:秘钥别名 比如 laiPassword: 输入秘钥的密码,比如: 123456Confirm: 确认秘钥的密码,比如:123456Validity(years): 有效期Certificate:证书,需要的填写如下First and Last Name:姓名 比如:LaiTianLiangOrganization Unit:组织单位比如:nothingOrganization:组织 比如:nothingCity or Locality:城市或地区 比如:ShenYangState or Province:州或省 比如:LiaoNingCountry Code(XX):国家代码(XX) 比如:86填写好后点击OK点击NextEnter Master Password 活动窗口中的英文简单翻译就是:主密码是解锁密码数据库时需要,密码数据库将在这个会话期间为所有子系统解锁在这里应该是设置主密码,我也忘记什么时候设的了,但是试了一下我的常用密码 Lt…… 结果好使了如果忘记了可以在File->Settings->Appearance&Behavior ->SystemSetting->Passwords中修改最后单击Finish完成
转载请注明出处51数据库 » 软件包gpg签名检查
乱气质