java技术--Linux系统软件包管理Alien(06)

1.RPM 与 DEB 的兼容

(1)Alien 工具可以将 RPM 软件包转换成 DEB 软件包
(2)或把 DEB 软件包转换成 RPM 软件包
(3)注意首先请在系统中安装 alien 
(4)在 UBUNTU 中使用 alien 将 rpm 转换为 deb 并安装 :
      <1>$ sudo alien -d package.rpm 
      <2>$ sudo dpkg -i package.deb
(5)在 RHEL 中使用 alien 将 deb 转换为 rpm 并安装 :
       <1># alien -r package.deb 
       <2># rpm -ivh package.rpm
(6)更多 alien 相关信息请查阅 http://linux.die.net/man/1/alien       

2.总结:

(1)本系列以 RHEL 5.2 和 Ubuntu 904 为例
(2)基于命令行操作,介绍了 Linux 系统中两大常用软件包管理工具RPM与DPKG 
    <1>首先从最底端的 rpm/dpkg 命令操作开始列举了它们的基本使用方法
    <2>随后指出了软件的依赖关系以及由此带来的问题,并对此问题的解决方案
    <3>也是最流行的 YUM 与 APT 前端软件管理系统进行了操作介绍
    <4>最后本文简要说明了当前 RPM/DEB 的兼容性问题的常规解决方法

3.常见问题列表

(1)可以手动强制不进行 RPM/DEB 的依赖性关系检查吗?
    <1>RPM:可以
       使用 --nodeps 辅助参数,则安装过程将不理会依赖性关系限制,强制安装目标包
       命令:# rpm -i --nodeps package_a.rpm
    <2>DEB;可以
       使用— force-depends 辅助参数
       命令:$ sudo dpkg -i --force-depends package_a.deb
(2)RPM 中的 --force 是干什么用的?
    <1>RPM 中的默认安装规则是不允许同一个包多次安装的,也不允许降级安装
    <2>使用 --force 辅助参数将不考虑以上因素,强制安装 RPM 包
    <3>--force无法强制安装一个不满足系统依赖性关系的包 (此时需要用到--nodeps参数) 
       命令:# rpm -i --force package_a.rpm
(3)RPM/DPKG 支持远程安装吗?
    <1>RPM:支持
       RPM 支持 HTTP 和 FTP 协议
       命令:# rpm -Uvh ftp://user:pass@ftpserver/package.rpm  
    <2> DPKG:最新的基于DEB包的系统中,远程安装通常被更先进的 APT 代替     
(4)可以从 RPM/DPKG 中抽取个别文件吗?
    <1>RPM:可以
      使用rpm2cpio工具来提取文件
      工具网址:http://www.rpm.org/max-rpm/s1-rpm-miscellania-rpm2cpio.html 
    <2>DPKG:可以
     使用 dpkg-deb工具来提取文件
     命令:$ dpkg-deb --extract ibm_lotus_notes-8.5.i586.deb $dir(目标目录 ) 
(5)RPM/DPKG 提供包安装成功的验证机制吗?
    <1>RPM:提供
       可以使用 -V 参数进行验证。
    <2>DPKG:提供
       Debian 系统通常使用 debsums 工具参数进行验证
(6)RPM/DPKG 提供包安全签名吗?
   <1>RPM:提供
      可以使用 --import 导入与软件同时发布的 GPG KEY, 接着使用 -K 命令来验证包
      命令:# rpm --import pub_ibm_lotus_notes.gpg # rpm -K ibm_lotus_notes-8.5.i586.rpm 
      返回信息 : ibm_lotus_notes-8.5.i586.rpm: (sha1) dsa sha1 md5 gpg OK   
   <2>DPKG:不提供原生的 Key 验证机制
      可以使用 debsigs 和 debsigs-verify
      详情请见:http://man.ddvip.com/os/debiansecuring-howto/ch7.zh-cn.html  
(7)如果 RPM 的底层数据库损坏,RPM 还能使用吗?
    <1>RPM:将无法正常使用
       此时最常用的解决方法是重构数据库:
       命令:# rm -f /var/lib/rpm/__* ; rpm -vv --rebuilddb      
    <2>DPKG:本身不提供底层数据库恢复机制
       DPKG的数据库以文件形式保存在 /var/lib/dpkg 目录中
       及时地备份这个目录是最好的预防数据库损坏措施
(8)可以查询系统中已经安装的某个文件属于哪个 RPM 包吗?
    <1>RPM:可以
       使用 -qf 参数 , 如在安装了 Notes8.5 的系统中:
       命令:# rpm -qf /opt/ibm/lotus/notes/notes
       返回信息 : Ibm_lotus_notes-8.5-20081211.1920        
    <2>DPKG:可以 
       使用— search 参数 , 如在安装了 Notes8.5 的系统中:
       命令:$ dpkg --search /opt/ibm/lotus/notes/notes 
       返回信息 : ibm-lotus-notes: /opt/ibm/lotus/notes/notes       
(9)可以查询 RPM 包的安装时间吗?
    <1>RPM:可以
       使用 --last 查询
       命令:rpm -qa --last
       返回信息 : 系统中所有软件的安装时间
    <2>DPKG:不提供直接的查询参数,但是可以用过查询dpkg的日志文件实现这个功能
       命令:cat /var/log/dpkg.log | grep "\ install\ "   

4.相关资料

(1)在 Linux System Administration and Configuration (yolinux.com)中学习详尽的 Linux 常用的配置管理工具
(2)快速查阅最常用 rpm/dpkg 命令,请参考 Linux Software Management
(3)了解更全面的 APT 信息,请参考 APT HOWTO 
(4)了解更全面的 YUM 信息,请参考 Fedora Tools/yum
(5)参考 RPMAlienHowto进行 Alien 在 Ubuntu 上的安装和常规使用
(6)在 developerWorks 上查阅所有 Linux 技巧 和 Linux 教程
(7)学习Linux推荐《鸟哥的私房菜》
发布了178 篇原创文章 · 获赞 11 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/qq591009234/article/details/104726341