Product SiteDocumentation Site

5.5. 与其它软件包共存

Debian 包格式并非唯一用于自由软件领域的软件包格式。主要竞争者是红帽 Linux 发行版的 RPM 格式以及其衍生格式。红帽是一个非常流行的商业化发行版。对于来自第三方的软件,常以 RPM 格式软件包提供,而非 Debian 格式。
这个情况下,你应该知道rpm程序是如何处理RPM软件包的,这种格式在Debian软件包中也可用。需要谨慎的使用,尽管如何,这些操作会限制从一个软件包中解压并且提取出信息以验证其完整性。实际上,不应该在Debian系统中使用rpm来安装一个RPM软件包;RPM使用了它自己的数据库以便和Debian的软件中分离(比如dpkg)。这也就是为什么不可能确保两个包管理系统共存在一个系统中,而这个系统还能保持稳定。
另一方面,alien 可以把RPM软件包转换成Debian软件包,反之亦然。
$ fakeroot alien --to-deb phpMyAdmin-5.2.1-2.fc39.src.rpm
[..]
Warning: Skipping conversion of scripts in package phpMyAdmin: postinst
Warning: Use the --scripts parameter to include the scripts.
[..]
phpmyadmin_5.2.1-3_all.deb generated
$ ls -sh phpmyadmin_5.2.1-3_all.deb
  7.2M phpmyadmin_5.2.1-3_all.deb
$ dpkg -c phpmyadmin_5.2.1-3_all.deb
drwxr-xr-x root/root         0 2024-05-21 20:49 ./
-rw-r--r-- root/root   7461668 2023-02-08 01:15 ./phpMyAdmin-5.2.1-all-languages.tar.xz
-rw-r--r-- root/root       833 2023-02-08 01:15 ./phpMyAdmin-5.2.1-all-languages.tar.xz.asc
-rw-r--r-- root/root      1077 2023-07-20 20:00 ./phpMyAdmin-bundled.php
-rw-r--r-- root/root       637 2023-07-20 20:00 ./phpMyAdmin-certs.patch
-rw-r--r-- root/root      1181 2023-07-20 20:00 ./phpMyAdmin.htaccess
-rw-r--r-- root/root       430 2023-07-20 20:00 ./phpMyAdmin.nginx
-rw-r--r-- root/root     38997 2023-07-20 20:00 ./phpMyAdmin.spec
-rw-r--r-- root/root     34198 2023-07-20 20:00 ./phpmyadmin.keyring
drwxr-xr-x root/root         0 2024-05-21 20:49 ./usr/
drwxr-xr-x root/root         0 2024-05-21 20:49 ./usr/share/
drwxr-xr-x root/root         0 2024-05-21 20:49 ./usr/share/doc/
drwxr-xr-x root/root         0 2024-05-21 20:49 ./usr/share/doc/phpmyadmin/
-rw-r--r-- root/root       214 2024-05-21 20:49 ./usr/share/doc/phpmyadmin/changelog.Debian.gz
-rw-r--r-- root/root      1303 2024-05-21 20:49 ./usr/share/doc/phpmyadmin/copyright
[..]
$ dpkg -I phpmyadmin_5.2.1-3_all.deb
 new Debian package, version 2.0.
 size 7500852 bytes: control archive=1092 bytes.
     583 bytes,    15 lines      control
     618 bytes,    10 lines      md5sums
     446 bytes,    11 lines   *  postinst             #!/bin/sh
 Package: phpmyadmin
 Version: 5.2.1-3
 Architecture: all
 Maintainer: debian <debian@debian>
 Installed-Size: 7377
 Section: alien
 Priority: extra
 Description: A web interface for MySQL and MariaDB
  phpMyAdmin is a tool written in PHP intended to handle the administration of
  MySQL over the Web. Currently it can create and drop databases,
  create/drop/alter tables, delete/edit/add fields, execute any SQL statement,
  manage keys on fields, manage privileges,export data into various formats and
  is available in 50 languages
  .
  (Converted from a rpm package by alien version 8.95.6.)
此例极为简单。然而,您必须知道不需任何相依性信息就能产生软件包,两种软件包格式并不必然有系统性的关系。管理者必须以手动方式确保转换过的软件包能够正确运作,这就是 Debian 产生的软件包能够避免此种可能。幸运的是,Debian 拥有软件软件包各种版本的数据库,想要的都能找到。
翻看alien命令的帮助页面,您会注意到该程序也可处理其他的包格式,特别是使用 Slackware 发行版所用的格式(它使用简单的tar.gz归档格式)。
dpkg作为一个稳定的工具有助于提高Debian的名字。APT软件包工具,在下面的章节中会告诉我们,它不但保留了这一优势,同时减轻了管理员管理软件包这一必须但是艰难得任务的负担。