<?xml version="1.0" encoding="UTF-8" ?>
<rss version="2.0">
<channel>
<title><![CDATA[向东博客 专注WEB应用 构架之美 --- 构架之美，在于尽态极妍 | 应用之美，在于药到病除]]></title> 
<link>http://www.jackxiang.com/index.php</link> 
<description><![CDATA[赢在IT，Playin' with IT,Focus on Killer Application,Marketing Meets Technology.]]></description> 
<language>zh-cn</language> 
<copyright><![CDATA[向东博客 专注WEB应用 构架之美 --- 构架之美，在于尽态极妍 | 应用之美，在于药到病除]]></copyright>
<item>
<link>http://www.jackxiang.com/post//</link>
<title><![CDATA[[实践OK]rpmbuid基础知识之AutoReqProv/requires/provides/ ，rpm包文件安装位置及列表，rpm软件依赖检查命令，查看嵌入脚本，自动产生rpm包依赖关系，rpm的配置文件查看,rpm包配置文件验证，rpm里的一个文件反查属于哪个rpm包,配置好源后查看rpm输出信息知道仓库在哪儿,yum本地缓存目录,本地缓存的位置及对应关系，指定仓库安装里面的rpm包,指定更新仓库索引。]]></title> 
<author>jack &lt;xdy108@126.com&gt;</author>
<category><![CDATA[WEB2.0]]></category>
<pubDate>Tue, 16 Dec 2008 08:21:21 +0000</pubDate> 
<guid>http://www.jackxiang.com/post//</guid> 
<description>
<![CDATA[ 
	查看YUM的RPM包依赖的包由谁来提供，以及对应的包命令yum deplist yumPKg：<br/>yum deplist openssh&#124;grep -i ssl<br/>&nbsp;&nbsp;dependency: libcrypto.so.10(OPENSSL_1.0.1_EC)(64bit)<br/>&nbsp;&nbsp; provider: openssl.x86_64 1.0.1e-57.el6<br/>&nbsp;&nbsp; provider: openssl.x86_64 1.0.1e-57.el6<br/>&nbsp;&nbsp;dependency: libcrypto.so.10(OPENSSL_1.0.1)(64bit)<br/>&nbsp;&nbsp; provider: openssl.x86_64 1.0.1e-57.el6<br/>&nbsp;&nbsp; provider: openssl.x86_64 1.0.1e-57.el6<br/><br/>rpm -q openssh-5.3p1 --requires&#124;grep ssl<br/><br/>CentOS7上面运行yum clean all时会有这个提示：<br/><textarea name="code" class="php" rows="15" cols="100">
Maybe you want: rm -rf /var/cache/yum, to also free up space taken by orphaned data from disabled or removed repos
</textarea><br/><br/>AutoReqProv no:<br/>--requires&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; list capabilities required by package(s)<br/>--provides&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; list capabilities that this package provides<br/>rpm -qp php-5.6.20-160919111909.el7.centos.x86_64.rpm --requires <br/>libiconv<br/>libmcrypt<br/>mcrypt<br/>mhash<br/>libtool-ltdl-devel<br/><br/>rpm -qp mkvtoolnix-13.0.0-1.x86_64.rpm --requires<br/>hicolor-icon-theme&nbsp;&nbsp;<br/>libFLAC.so.8()(64bit)&nbsp;&nbsp;<br/>libQt5Concurrent.so.5()(64bit)&nbsp;&nbsp;<br/>libQt5Core.so.5()(64bit)&nbsp;&nbsp;<br/>libQt5Core.so.5(Qt_5)(64bit)&nbsp;&nbsp;<br/>libQt5Core.so.5(Qt_5.6)(64bit)&nbsp;&nbsp;<br/>libQt5Gui.so.5()(64bit)&nbsp;&nbsp;<br/>libQt5Gui.so.5(Qt_5)(64bit)&nbsp;&nbsp;<br/>libQt5Multimedia.so.5()(64bit)&nbsp;&nbsp;<br/>libQt5Multimedia.so.5(Qt_5)(64bit)&nbsp;&nbsp;<br/>libQt5Network.so.5()(64bit)&nbsp;&nbsp;<br/>libQt5Network.so.5(Qt_5)(64bit)&nbsp;&nbsp;<br/>libQt5Widgets.so.5()(64bit)&nbsp;&nbsp;<br/>libQt5Widgets.so.5(Qt_5)(64bit)&nbsp;&nbsp;<br/>libboost_filesystem.so.1.53.0()(64bit)&nbsp;&nbsp;<br/>libboost_regex-mt.so.1.53.0()(64bit)&nbsp;&nbsp;<br/>libboost_system.so.1.53.0()(64bit) <br/><br/>rpm -qp php-5.6.20-160919111909.el7.centos.x86_64.rpm --provides<br/>php = 5.6.20-160919111909.el7.centos<br/>php(x86-64) = 5.6.20-160919111909.el7.centos<br/><br/>查询一个包是否被安装 <br/># rpm -q &lt; rpm package name&gt;<br/>列出所有被安装的rpm package <br/># rpm -qa<br/>-p, --package&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;query/verify a package file<br/><br/>（一）rpm包文件安装位置及列表：<br/>[root@localhost x86_64]# rpm -qpl nginx-1.7.1-el5.x86_64.rpm<br/>/usr/local/nginxinstallbyrpm<br/>/usr/local/nginxinstallbyrpm/conf<br/>/usr/local/nginxinstallbyrpm/conf/fastcgi.conf<br/>/usr/local/nginxinstallbyrpm/conf/fastcgi.conf.default<br/>/usr/local/nginxinstallbyrpm/conf/fastcgi_params<br/>/usr/local/nginxinstallbyrpm/conf/fastcgi_params.default<br/>/usr/local/nginxinstallbyrpm/conf/koi-utf<br/>/usr/local/nginxinstallbyrpm/conf/koi-win<br/><br/>（二）rpm软件依赖检查命令：<br/>[root@localhost x86_64]# rpm -qp nginx-1.7.1-el5.x86_64.rpm -requires<br/>rpmlib(CompressedFileNames) &lt;= 3.0.4-1<br/>rpmlib(FileDigests) &lt;= 4.6.0-1<br/>rpmlib(PayloadFilesHavePrefix) &lt;= 4.0-1<br/>rtld(GNU_HASH)&nbsp;&nbsp;<br/>rpmlib(PayloadIsXz) &lt;= 5.2-1<br/>/bin/sh&nbsp;&nbsp;<br/>libc.so.6()(64bit)&nbsp;&nbsp;<br/>libc.so.6(GLIBC_2.10)(64bit)&nbsp;&nbsp;<br/>libc.so.6(GLIBC_2.14)(64bit)&nbsp;&nbsp;<br/>libc.so.6(GLIBC_2.2.5)(64bit)&nbsp;&nbsp;<br/>libc.so.6(GLIBC_2.3)(64bit)&nbsp;&nbsp;<br/>libc.so.6(GLIBC_2.3.2)(64bit)&nbsp;&nbsp;<br/>libc.so.6(GLIBC_2.3.4)(64bit)&nbsp;&nbsp;<br/>libc.so.6(GLIBC_2.4)(64bit)&nbsp;&nbsp;<br/>libcrypt.so.1()(64bit)&nbsp;&nbsp;<br/>libcrypt.so.1(GLIBC_2.2.5)(64bit)&nbsp;&nbsp;<br/>libcrypto.so.10()(64bit)&nbsp;&nbsp;<br/>libcrypto.so.10(libcrypto.so.10)(64bit)&nbsp;&nbsp;<br/>libpcre.so.1()(64bit)&nbsp;&nbsp;<br/>libpthread.so.0()(64bit)&nbsp;&nbsp;<br/>libpthread.so.0(GLIBC_2.2.5)(64bit)&nbsp;&nbsp;<br/>libz.so.1()(64bit)&nbsp;&nbsp;<br/><br/>（三）查看嵌入脚本， -scripts:（preuninstall 卸载前）<br/>[root@localhost x86_64]# rpm -qp nginx-1.7.1-el5.x86_64.rpm&nbsp;&nbsp;-scripts<br/>preuninstall scriptlet (using /bin/sh):<br/>if [ -z &quot;`ps aux &#124; grep nginx &#124; grep -v grep`&quot; ];then<br/>&nbsp;&nbsp;killall nginx &gt;/dev/null<br/>&nbsp;&nbsp;exit 0<br/>fi<br/><br/>（四）查看rpm包的安装信息：<br/>[root@localhost x86_64]# rpm -qpi nginx-1.7.1-el5.x86_64.rpm&nbsp;&nbsp;-scripts<br/>Name&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;: nginx&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Relocations: (not relocatable)<br/>Version&nbsp;&nbsp;&nbsp;&nbsp; : 1.7.1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Vendor: (none)<br/>Release&nbsp;&nbsp;&nbsp;&nbsp; : el5&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Build Date: Thu 10 Mar 2016 11:42:25 AM CST<br/>Install Date: (not installed)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Build Host: iZ25dcp92ckZ<br/>Group&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; : Applications/Server&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Source RPM: nginx-1.7.1-el5.src.rpm<br/>Size&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;: 707923&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; License: GPL<br/>Signature&nbsp;&nbsp; : (none)<br/>Packager&nbsp;&nbsp;&nbsp;&nbsp;: yunjianfei &lt;yunjianfei1987@gmail.com&gt;<br/>URL&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; : http://nginx.org/<br/>Summary&nbsp;&nbsp;&nbsp;&nbsp; : High Performance Web Server<br/>Description :<br/>nginx [engine x] is a HTTP and reverse proxy server, as well as a mail proxy server<br/>preuninstall scriptlet (using /bin/sh):<br/>if [ -z &quot;`ps aux &#124; grep nginx &#124; grep -v grep`&quot; ];then<br/>&nbsp;&nbsp;killall nginx &gt;/dev/null<br/>&nbsp;&nbsp;exit 0<br/>fi<br/><br/>（五）自动产生rpm包依赖关系：<br/>autoreqprov<br/>默认不写值是1，也就是自动产生依赖关系，而主查对于一些共享库进行依赖（除开写了的外）。<br/>加了autoreqprov=1和autoreqprov=0的rpm包查看如下方法：<br/>rpm -qp nginx-1.7.1-el5.x86_64.rpm --requires<br/>/bin/sh&nbsp;&nbsp;<br/>libc.so.6()(64bit)&nbsp;&nbsp;<br/>libc.so.6(GLIBC_2.10)(64bit)&nbsp;&nbsp;<br/><br/>(六)rpm包的配置文件查看：<br/>rpm -qp /usr/local/nginx/html/centos6.4/x86_64/nginx-1.7.1-el5.x86_64.rpm --configfiles<br/><br/>（七）查看rpm包的安装情况：<br/>[root@localhost x86_64]# rpm -qa perl-Test-Simple<br/>perl-Test-Simple-0.92-141.el6_7.1.x86_64<br/>[root@localhost x86_64]# file pcre-7.8-7.el6.x86_64.rpm <br/>pcre-7.8-7.el6.x86_64.rpm: RPM v3.0 bin i386/x86_64 pcre-7.8-7.el6<br/><br/><br/>（八）rpm包配置文件验证：<br/>[root@localhost /]# rpm -qvV nginx-filesystem<br/>.........&nbsp;&nbsp;&nbsp;&nbsp;/etc/nginx<br/>.........&nbsp;&nbsp;&nbsp;&nbsp;/etc/nginx/conf.d<br/>.........&nbsp;&nbsp;&nbsp;&nbsp;/etc/nginx/default.d<br/>.........&nbsp;&nbsp;&nbsp;&nbsp;/usr/share/nginx<br/>.........&nbsp;&nbsp;&nbsp;&nbsp;/usr/share/nginx/html<br/><br/>（九）rpm伯克利文件存放rpm包安装相关信息：<br/>[root@iZ25dcp92ckZ rpmbuild]# file /var/lib/rpm/* &#124;grep Berkeley<br/>/var/lib/rpm/Basenames:&nbsp;&nbsp;&nbsp;&nbsp;Berkeley DB (Btree, version 9, native byte-order)<br/>/var/lib/rpm/Conflictname: Berkeley DB (Btree, version 9, native byte-order)<br/>/var/lib/rpm/Dirnames:&nbsp;&nbsp;&nbsp;&nbsp; Berkeley DB (Btree, version 9, native byte-order)<br/><br/>(十)rpm安装好的包里反查到属于哪个软件包的方法，rpm里的一个文件反查属于哪个rpm包：<br/>[root@localhost /]# rpm -qf /usr/bin/sz <br/>lrzsz-0.12.20-27.1.el6.x86_64 //ls -lart /var/lib/rpm/Packages&nbsp;&nbsp;这个表里及相关表反查到的。<br/><br/>(十一)查看rpm包里的配置文件：<br/>查看一下已安装软件的配置文件；<br/>语法格式：rpm -qc 软件名<br/>举例：<br/>#rpm -qa&#124;grep nginx<br/>nginx-1.14.0-180523170757.el7.centos.x86_64<br/>#rpm -qc nginx-1.14.0<br/>/usr/local/nginx/conf/fastcgi.conf<br/>/usr/local/nginx/conf/fastcgi_params<br/>/usr/local/nginx/conf/koi-utf<br/>/usr/local/nginx/conf/koi-win<br/>/usr/local/nginx/conf/mime.types<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; -c, --configfiles<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;List only configuration files (implies -l).<br/><br/>rpm -qf /sbin/ifconfig&nbsp;&nbsp;//找不到这个，centos7没网络，没ifconfig咋整的，反查到缺少该包。<br/>net-tools-2.0-0.17.20131004git.el7.x86_64<br/>实践如下：<br/><textarea name="code" class="php" rows="15" cols="100">
rpm -qf reposync 
error: file /etc/yum.repos.d/reposync: No such file or directory
whereis reposync
reposync: /usr/bin/reposync 
rpm -qf /usr/bin/reposync
yum-utils-1.1.30-37.el6.noarch
</textarea><br/><br/> #chattr +i&nbsp;&nbsp;/var/lib/rpm/Packages&nbsp;&nbsp;——&gt;添加“i”隐藏属性后,就无法更动这个文件了 ，再rpm -ihv xxx.rpm，提示这个Packages index using db3-Permission denied（13）<br/>举例比如，rpmbuild，咱发现这个命令没有，其它机器上有，又不知道这个文件是哪个rpm包里的于是反查呗：<br/>build:[root@iZ25dcp92ckZ vhost]# whereis rpmbuild <br/>rpmbuild: /usr/bin/rpmbuild<br/>[root@iZ25dcp92ckZ vhost]#&nbsp;&nbsp;rpm -qf /usr/bin/rpmbuild<br/>rpm-build-4.11.3-17.el7.x86_64<br/>yum install rpm-build -y<br/>[root@iZ25dcp92ckZ vhost]# rpm -qf&nbsp;&nbsp;/usr/bin/rz<br/>lrzsz-0.12.20-36.el7.x86_64<br/>[root@iZ25z0ugwgtZ xdebug]# rpm -qf /usr/bin/dig //名字和包一点关系没有如何反查在这儿有用了<br/>bind-utils-9.9.4-29.el7_2.2.x86_64<br/>#显示文件中查看是否存在系统以外的文件<br/>rpm -Vf /bin/ls<br/>rpm -Vf /usr/sbin/sshd<br/>rpm -Vf /sbin/ifconfig<br/>rpm -Vf /usr/sbin/lsof<br/>#检查系统是否有elf文件被替换<br/><br/>（十一）阻塞问题：因为berkeley db对多任务并发操作支持不够好，从而导致数据库死锁而引起进程阻塞。一般处理是杀死相关进程，清空文件，运行yum命令清空：<br/><textarea name="code" class="php" rows="15" cols="100">
&nbsp;&nbsp;killall -9 yum rpm rpmq
&nbsp;&nbsp;rm -Rf /var/lib/rpm/__db.00*
&nbsp;&nbsp;yum clean all
</textarea><br/><br/><br/>(十二)配置好源后查看rpm输出信息知道仓库在哪儿:<br/>yum clean all<br/>yum info nginx-1.7.1<br/>Loaded plugins: fastestmirror, security<br/>Repository base is listed more than once in the configuration<br/>Determining fastest mirrors<br/>......<br/>Available Packages<br/>Name&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;: nginx<br/>Arch&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;: x86_64<br/>Version&nbsp;&nbsp;&nbsp;&nbsp; : 1.7.1<br/>Release&nbsp;&nbsp;&nbsp;&nbsp; : el5<br/>Size&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;: 242 k<br/>Repo&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;: extra<br/>Summary&nbsp;&nbsp;&nbsp;&nbsp; : High Performance Web Server<br/>URL&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; : http://nginx.org/<br/>License&nbsp;&nbsp;&nbsp;&nbsp; : GPL<br/>Description : nginx [engine x] is a HTTP and reverse proxy server, as well as a mail proxy server<br/><br/>(十三)yum install nginx-1.7.1,如何检查该包是否已经被安装？<br/>rpm -qi nginx-1.7.1 <br/>package nginx-1.7.1 is not installed<br/><br/><br/>（十四）首次及更新yum服务端rpm的索引文件：<br/>yum -y install createrepo<br/>createrepo --u http://192.168.1.245/winrpm -d -p -o . .&nbsp;&nbsp;&nbsp;&nbsp; //实现本机并指定镜像文件在192.168.1.245上。<br/>createrepo --update -d -p .<br/><br/>(十五)yum本地缓存目录：<br/>cat /etc/yum.conf &#124;grep cachedir<br/>cachedir=/var/cache/yum/$basearch/$releasever // /var/cache/yum/x86_64/6/<br/>ls&nbsp;&nbsp;-lart /var/cache/yum/x86_64/6/base/<br/> repomd.xml<br/> packages<br/> gen<br/> cachecookie<br/> 11bcf3233241e37e1a0e04d2fde8a609215059b5b0319fd660f796d462bbe6a8-primary.sqlite<br/><br/>(十六)本地缓存的位置及对应关系：<br/>repomd.xml这个文件是一个从服务器上同步的，通过yum clean all可以去掉的：<br/>服务端：<br/>md5sum /usr/local/nginx/html/centos6.4/x86_64/repodata/repomd.xml&nbsp;&nbsp; <br/>792442251ee4d10e68dfedfea2818041&nbsp;&nbsp;/usr/local/nginx/html/centos6.4/x86_64/repodata/repomd.xml<br/>客户端：<br/>md5sum /var/cache/yum/x86_64/6/extra/repomd.xml<br/>792442251ee4d10e68dfedfea2818041&nbsp;&nbsp;/var/cache/yum/x86_64/6/extra/repomd.xml<br/><br/>客户端的配置情况[extra]目录对应上面的客户端的extra目录（/var/cache/yum/x86_64/6/extra/）：<br/>cat /etc/yum.repos.d/test.repo <br/>[extra] //个[extra]必须是唯一的单词，不能重复。<br/>name=centos-extra<br/>#baseurl=http://192.168.101.227/centos6.4/extra<br/>baseurl=http://192.168.101.227/centos6.4/x86_64<br/>gpgcheck=1<br/>enabled=1<br/><br/>（十七）对不同yum仓库里有相同的rpm包时（不推荐这么搞），如果客户端都配置了，他会去下哪一个呢？<br/>cat /etc/yum.repos.d/yum0.repo <br/>cat /etc/yum.repos.d/yum1.repo <br/>cat /etc/yum.repos.d/yum2.repo <br/>是根据cost值越小来进行下载的：<br/>cost=100<br/>cost=105<br/>cost=103<br/><br/>（十八）指定仓库安装里面的rpm包（被追求完美的系统的管理员排斥，觉得应用把yum服务的实现绑架了，尽量不要采用指定仓库的方式来安装）：<br/><textarea name="code" class="php" rows="15" cols="100">
yum install test_rpm-1.1.0-2 -disablerepo=* --enablerepo=repoa*
</textarea><br/><br/><br/>(十九) 指定更新仓库索引，大幅度提升索引更新速度：<br/><textarea name="code" class="php" rows="15" cols="100">
&nbsp;&nbsp; createrepo --add -update -d -p . -f test.rpm
&nbsp;&nbsp; createrepo --del -f test.rpm -update -d -p .
</textarea><br/><br/>附录：<br/>rpm包相关信息在本地sql存起来：<br/>sqlite3 /var/cache/yum/x86_64/6/extra/ac3d9311735ae54c215864a35307072dda8b3b03503f272bb17c281e949279b2-primary.sqlite <br/>sqlite&gt; .tables<br/>conflicts&nbsp;&nbsp;db_info&nbsp;&nbsp;&nbsp;&nbsp;files&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;obsoletes&nbsp;&nbsp;packages&nbsp;&nbsp; provides&nbsp;&nbsp; requires <br/>sqlite&gt; .schema packages<br/>CREATE TABLE packages (&nbsp;&nbsp;pkgKey INTEGER PRIMARY KEY,&nbsp;&nbsp;pkgId TEXT,&nbsp;&nbsp;name TEXT,&nbsp;&nbsp;arch TEXT,&nbsp;&nbsp;version TEXT,&nbsp;&nbsp;epoch TEXT,&nbsp;&nbsp;release TEXT,&nbsp;&nbsp;summary TEXT,&nbsp;&nbsp;description TEXT,&nbsp;&nbsp;url TEXT,&nbsp;&nbsp;time_file INTEGER,&nbsp;&nbsp;time_build INTEGER,&nbsp;&nbsp;rpm_license TEXT,&nbsp;&nbsp;rpm_vendor TEXT,&nbsp;&nbsp;rpm_group TEXT,&nbsp;&nbsp;rpm_buildhost TEXT,&nbsp;&nbsp;rpm_sourcerpm TEXT,&nbsp;&nbsp;rpm_header_start INTEGER,&nbsp;&nbsp;rpm_header_end INTEGER,&nbsp;&nbsp;rpm_packager TEXT,&nbsp;&nbsp;size_package INTEGER,&nbsp;&nbsp;size_installed INTEGER,&nbsp;&nbsp;size_archive INTEGER,&nbsp;&nbsp;location_href TEXT,&nbsp;&nbsp;location_base TEXT,&nbsp;&nbsp;checksum_type TEXT);<br/>CREATE INDEX packageId ON packages (pkgId);<br/>CREATE INDEX packagename ON packages (name);<br/>CREATE TRIGGER removals AFTER DELETE ON packages&nbsp;&nbsp;BEGIN&nbsp;&nbsp;&nbsp;&nbsp;DELETE FROM files WHERE pkgKey = old.pkgKey;&nbsp;&nbsp;&nbsp;&nbsp;DELETE FROM requires WHERE pkgKey = old.pkgKey;&nbsp;&nbsp;&nbsp;&nbsp;DELETE FROM provides WHERE pkgKey = old.pkgKey;&nbsp;&nbsp;&nbsp;&nbsp;DELETE FROM conflicts WHERE pkgKey = old.pkgKey;&nbsp;&nbsp;&nbsp;&nbsp;DELETE FROM obsoletes WHERE pkgKey = old.pkgKey;&nbsp;&nbsp;END;<br/>sqlite&gt; select * from packages;<br/>1&#124;6e099492eb691f0e869c02a7352530ec6a8d0056c1aadcde3613cc1f8e24e52c&#124;pcre&#124;x86_64&#124;7.8&#124;0&#124;7.el6&#124;Perl-compatible regular expression library&#124;Perl-compatible regular expression library.<br/>PCRE has its own native API, but a set of &quot;wrapper&quot; functions that are based on<br/>the POSIX API are also supplied in the library libpcreposix. Note that this<br/>just provides a POSIX calling interface to PCRE: the regular expressions<br/>themselves still follow Perl syntax and semantics. The header file<br/>for the POSIX-style functions is called pcreposix.h.&#124;http://www.pcre.org/&#124;1437770553&#124;1437691568&#124;BSD&#124;CentOS&#124;System Environment/Libraries&#124;c6b8.bsys.dev.centos.org&#124;pcre-7.8-7.el6.src.rpm&#124;1384&#124;11408&#124;CentOS BuildSystem &lt;http://bugs.centos.org&gt;&#124;200564&#124;529027&#124;531768&#124;pcre-7.8-7.el6.x86_64.rpm&#124;&#124;sha256<br/>2&#124;f1bced3b528579ba55ef1f3924e03f0979dd188a3ab5a877058a2ef247bc75ca&#124;nginx&#124;x86_64&#124;1.7.1&#124;0&#124;el5&#124;High Performance Web Server&#124;nginx [engine x] is a HTTP and reverse proxy server, as well as a mail proxy server&#124;http://nginx.org/&#124;1457681066&#124;1457581345&#124;GPL&#124;&#124;Applications/Server&#124;iZ25dcp92ckZ&#124;nginx-1.7.1-el5.src.rpm&#124;280&#124;5836&#124;yunjianfei &lt;yunjianfei1987@gmail.com&gt;&#124;248156&#124;707923&#124;711684&#124;nginx-1.7.1-el5.x86_64.rpm&#124;&#124;sha256<br/>3&#124;b354e7ed72daec3d497ed85fa68e5bd77556f642a2645659d40877dc6449382f&#124;pcre-devel&#124;x86_64&#124;7.8&#124;0&#124;7.el6&#124;Development files for pcre&#124;Development files (Headers, libraries for dynamic linking, etc) for pcre.&#124;http://www.pcre.org/&#124;1437770555&#124;1437691568&#124;BSD&#124;CentOS&#124;Development/Libraries&#124;c6b8.bsys.dev.centos.org&#124;pcre-7.8-7.el6.src.rpm&#124;1384&#124;21612&#124;CentOS BuildSystem &lt;http://bugs.centos.org&gt;&#124;327960&#124;980154&#124;995184&#124;pcre-devel-7.8-7.el6.x86_64.rpm&#124;&#124;sha256<br/><br/>createrepo&nbsp;&nbsp;-d -p -o /tmp ../rpm/&nbsp;&nbsp;//把repodata输出到/tmp目录下，和rpm包分开。<br/>================================================================<br/>如果有修改则会出现sm5....T c /etc/boy.conf //MODE、SIZE、MD5SUM、mtime都改变列出来了。<br/>================================================================<br/><br/>rpm包依赖关系的解除：<br/>在我们安装某一个rpm包的时候，系统有可能提示某一个库文件或者rpm的支持，当想在安装需要该rpm包倚赖的这个库文件或者rpm包时，该库文件或者rpm包又依赖另外的文件或rpm包，导致安装很难快速解决包之间的以来关系达到安装需要的组件的目的。redhat提供的解决方案，安装依赖关系库，就可以解决此问题，该文件可以用find -name rpmdb* 在rpm包所在文件夹中找到，然后运行 rpm -ivh --aid abc.rpm,abc.rpm为需要安装的包即可。当然复杂的时候还需要手动解决少数包依赖关系，简单的情况下，可以一次性解决所有以来关系。<br/><br/>应用，平台：AS3<br/>samba的安装<br/>进入samba的rpm包所在目录执行<br/># rpm -ivh --aid samba*.rpm (一定要安装rpmdb后才可以用这种方式安装排除依赖关系)<br/>该命令会自动把依赖关系中需要安装的包都安装上，包括:<br/>cups-libs-1.1.17-13.3.6.rpm<br/>samba-common-3.0.0-14.3E.i386.rpm<br/>samba-3.0.0-14.3E.i386.rpm<br/>samba-client-3.0.0-14.3E.i386.rpm<br/>可以很简单地解决直接安装samba-3.0.0-14.3E.i386.rpm或者samba-client-3.0.0-14.3E.i386.rpm 对samba-common-3.0.0-14.3E.i386.rpm 的依赖，而安装samba-common- 3.0.0-14.3E.i386.rpm 出现对都libcups.so.2库文件的依赖，而且该库文件所在的rpm包无法很快确定<br/>上述方法可以很快解决依赖关系<br/><br/>应用2 平台 AS3<br/>在安装linux系统时可能会觉得开发工具是不需要的，后续在安装apache或者其他tar.gz格式的软件时，会瞪圆眼睛，想再安装gcc库时不是缺少这个文件就是缺少那个文件。实在恨不得直接重新安装系统。现在可以比较简单地解决了。<br/><br/>[root@vpc-test RPMS]# rpm -ivh -aid gcc*.rpm<br/>warning: gcc-3.2.3-20.i386.rpm: V3 DSA signature: NOKEY, key ID db42a60e<br/>error: Failed dependencies:<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;cpp = 3.2.3-20 is needed by gcc-3.2.3-20<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;glibc-devel &gt;= 2.2.90-12 is needed by gcc-3.2.3-20<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;libstdc++-devel = 3.2.3 is needed by gcc-c++-3.2.3-20<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;libstdc++-ssa = 3.5ssa is needed by gcc-c++-ssa-3.5ssa-0.20030801.41<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;libstdc++-ssa-devel = 3.5ssa is needed by gcc-c++-ssa-3.5ssa-0.20030801.41<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;libf2c = 3.2.3-20 is needed by gcc-g77-3.2.3-20<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;libgnat = 3.2.3-20 is needed by gcc-gnat-3.2.3-20<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;libgcj-devel &gt;= 3.2.3 is needed by gcc-java-3.2.3-20<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;zlib-devel is needed by gcc-java-3.2.3-20<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;libgcj-ssa &gt;= 3.5ssa is needed by gcc-java-ssa-3.5ssa-0.20030801.41<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;libgcj-ssa-devel &gt;= 3.5ssa is needed by gcc-java-ssa-3.5ssa-0.20030801.41<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;glibc-devel is needed by gcc-ssa-3.5ssa-0.20030801.41<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;libgcc-ssa &gt;= 3.5ssa-0.20030801.41 is needed by gcc-ssa-3.5ssa-0.20030801.41<br/>&nbsp;&nbsp;&nbsp;&nbsp;Suggested resolutions:<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;cpp-3.2.3-20.i386.rpm<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;glibc-devel-2.3.2-95.3.i386.rpm<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;libf2c-3.2.3-20.i386.rpm<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;libgcc-ssa-3.5ssa-0.20030801.41.i386.rpm<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;libgcj-devel-3.2.3-20.i386.rpm<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;libgcj-ssa-3.5ssa-0.20030801.41.i386.rpm<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;libgcj-ssa-devel-3.5ssa-0.20030801.41.i386.rpm<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;libgnat-3.2.3-20.i386.rpm<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;libstdc++-devel-3.2.3-20.i386.rpm<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;libstdc++-ssa-3.5ssa-0.20030801.41.i386.rpm<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;libstdc++-ssa-devel-3.5ssa-0.20030801.41.i386.rpm<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;zlib-devel-1.1.4-8.1.i386.rpm<br/><br/>安装如下过程<br/>&nbsp;&nbsp;&nbsp;&nbsp;Suggested resolutions:<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;cpp-3.2.3-20.i386.rpm&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ok<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;libgcj-ssa-3.5ssa-0.20030801.41.i386.rpm&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ok<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;libf2c-3.2.3-20.i386.rpm&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ok <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;libgcc-ssa-3.5ssa-0.20030801.41.i386.rpm&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; OK<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;libgcj-devel-3.2.3-20.i386.rpm&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ok<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;libgnat-3.2.3-20.i386.rpm&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;OK<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;libstdc++-devel-3.2.3-20.i386.rpm&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;OK<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;libstdc++-ssa-3.5ssa-0.20030801.41.i386.rpm&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Ok<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;libstdc++-ssa-devel-3.5ssa-0.20030801.41.i386.rpm&nbsp;&nbsp;OK<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;zlib-devel-1.1.4-8.1.i386.rpm<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;libgcj-ssa-devel-3.5ssa-0.20030801.41.i386.rpm&nbsp;&nbsp;&nbsp;&nbsp; OK(依赖libgcj-ssa-3.5ssa-0.20030801.41.i386.rpm&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; OK)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;glibc-devel-2.3.2-95.3.i386.rpm&nbsp;&nbsp; OK(依赖glibc-headers-2.3.2-95.3.i386.rpm&nbsp;&nbsp;ok(依赖glibc-kernheaders-2.4-8.34.i386.rpm OK))<br/>上述几个包是手动按照suggest逐个安装的，括号里代表前者以来后者，先安装后者在安装前者。然后在gcc所在的目录执行下面命令，很快就可以顺利安装完成<br/>[root@vpc-test RPMS]# rpm -ivh --aid gcc*.rpm<br/>warning: gcc-3.2.3-20.i386.rpm: V3 DSA signature: NOKEY, key ID db42a60e<br/>Preparing...&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;########################################### [100%]<br/>&nbsp;&nbsp; 1:gcc&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;########################################### [&nbsp;&nbsp;8%]<br/>&nbsp;&nbsp; 2:gcc-ssa&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;########################################### [ 17%]<br/>&nbsp;&nbsp; 3:zlib-devel&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ########################################### [ 25%]<br/>&nbsp;&nbsp; 4:gcc-c++&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;########################################### [ 33%]<br/>&nbsp;&nbsp; 5:gcc-c++-ssa&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;########################################### [ 42%]<br/>&nbsp;&nbsp; 6:gcc-g77&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;########################################### [ 50%]<br/>&nbsp;&nbsp; 7:gcc-g77-ssa&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;########################################### [ 58%]<br/>&nbsp;&nbsp; 8:gcc-gnat&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ########################################### [ 67%]<br/>&nbsp;&nbsp; 9:gcc-java&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ########################################### [ 75%]<br/>&nbsp;&nbsp;10:gcc-java-ssa&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ########################################### [ 83%]<br/>&nbsp;&nbsp;11:gcc-objc&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ########################################### [ 92%]<br/>&nbsp;&nbsp;12:gcc-objc-ssa&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ########################################### [100%]<br/>在AS4中测试gcc的依赖关系简单得多，直接rpm -ivh --aid gcc*.rpm就可以搞定了。<br/><br/>&nbsp;&nbsp;开发需要不得不用centos5，不得不用rpm，果然又碰上了预料之中的包依赖关系的问题。mysql-3.23.52-3.i386需要perl-DBD-MySQL- 2.1017-3，而perl-DBD-MySQL-2.1017-3又需要libmysqlclient10.so，这个文件包含在mysql- 3.23.52-3.i386中，这就造成了死循环。<br/><br/>在http://www.newsmth.net/bbscon.php?bid=69&amp;id=1621看到一个解决的技巧，就是把所有包的名字都列上去，这样就不会提示缺少某个包了<br/><br/>一般可以把所有要安装的包放在一个目录里，然后rpm -ivh *.rpm
]]>
</description>
</item><item>
<link>http://www.jackxiang.com/post//#blogcomment</link>
<title><![CDATA[[评论] [实践OK]rpmbuid基础知识之AutoReqProv/requires/provides/ ，rpm包文件安装位置及列表，rpm软件依赖检查命令，查看嵌入脚本，自动产生rpm包依赖关系，rpm的配置文件查看,rpm包配置文件验证，rpm里的一个文件反查属于哪个rpm包,配置好源后查看rpm输出信息知道仓库在哪儿,yum本地缓存目录,本地缓存的位置及对应关系，指定仓库安装里面的rpm包,指定更新仓库索引。]]></title> 
<author> &lt;user@domain.com&gt;</author>
<category><![CDATA[评论]]></category>
<pubDate>Thu, 01 Jan 1970 00:00:00 +0000</pubDate> 
<guid>http://www.jackxiang.com/post//#blogcomment</guid> 
<description>
<![CDATA[ 
	
]]>
</description>
</item>
</channel>
</rss>