5.5. Сосуществование с другими пакетными системами
Пакеты Debian — это не единственный формат пакетов, используемый в мире свободного ПО. Основным конкурентом является формат RPM из дистрибутива Red Hat Linux и его многочисленных производных. Red Hat — очень популярный коммерческий дистрибутив. Поэтому программное обеспечение, предоставяемое третьими сторонами, как правило распространяется в виде пакетов RPM, а не Debian.
Столкнувшись с такой ситуацией, важно знать, что программа rpm
, работающая с RPM-пакетами, доступна в виде пакета Debian, что делает возможным использование этого формата пакетов в Debian. Но нужно быть крайне осторожным и ограничиться такими операциями, как получение информации о пакете или проверка его целостности. Устанавливать пакеты RPM с помощью rpm
в Debian неблагоразумно; RPM использует свою собственную базу данных, отличную от используемой «родным» ПО (таким как dpkg
). По этой причине невозможно гарантировать стабильное сосуществование двух пакетных систем.
С другой стороны, утилита alien может преобразовывать пакеты RPM в Debian и наоборот.
$
fakeroot alien --to-deb phpMyAdmin-5.1.1-2.fc35.noarch.rpm
[..]
Warning: Skipping conversion of scripts in package phpMyAdmin: postinst
Warning: Use the --scripts parameter to include the scripts.
[..]
phpmyadmin_5.1.1-3_all.deb generated
$
ls -sh phpmyadmin_5.1.1-3_all.deb
6,0M phpmyadmin_5.1.1-3_all.deb
$
dpkg -c phpmyadmin_5.1.1-3_all.deb
drwxr-xr-x root/root 0 2021-08-09 02:02 ./
drwxr-xr-x root/root 0 2021-08-09 02:02 ./etc/
drwxr-xr-x root/root 0 2021-08-09 02:02 ./etc/httpd/
drwxr-xr-x root/root 0 2021-08-09 02:02 ./etc/httpd/conf.d/
-rw-r--r-- root/root 1181 2021-07-27 09:32 ./etc/httpd/conf.d/phpMyAdmin.conf
drwxr-xr-x root/root 0 2021-08-09 02:02 ./etc/nginx/
drwxr-xr-x root/root 0 2021-08-09 02:02 ./etc/nginx/default.d/
-rw-r--r-- root/root 430 2021-07-27 09:32 ./etc/nginx/default.d/phpMyAdmin.conf
drwxr-x--- root/root 0 2021-08-09 02:02 ./etc/phpMyAdmin/
-rw-r----- root/root 4546 2021-07-27 09:34 ./etc/phpMyAdmin/config.inc.php
drwxr-xr-x root/root 0 2021-08-09 02:02 ./usr/
drwxr-xr-x root/root 0 2021-08-09 02:02 ./usr/share/
drwxr-xr-x root/root 0 2021-08-09 02:02 ./usr/share/doc/
drwxr-xr-x root/root 0 2021-08-09 02:02 ./usr/share/doc/phpMyAdmin/
[..]
$
dpkg -I phpmyadmin_5.1.1-3_all.deb
new Debian package, version 2.0.
size 6195324 bytes: control archive=44444 bytes.
102 bytes, 3 lines conffiles
593 bytes, 15 lines control
180405 bytes, 1919 lines md5sums
448 bytes, 11 lines * postinst #!/bin/sh
Package: phpmyadmin
Version: 5.1.1-3
Architecture: all
Maintainer: Daniel Leidert <dleidert@debian.org>
Installed-Size: 40693
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.4.)
Как вы можете убедиться, тут нет ничего сложного. Не забывайте, однако, что созданный пакет не содержит никакой информацию о зависимостях, поскольку зависимости в двух форматах пакетов не имеют строгого соответствия друг другу. Поэтому администратору придется вручную проверить работоспособность преобразованного пакета, и это является главной причиной, по которой следует избегать использования полученных таким образом пакетов Debian. К счастью, в репозиторях Debian находится самый большой набор пакетов программного обеспечения, и скорее всего то, что вы ищете, там уже есть.
Заглянув на страницу man команды alien
, вы заметите, что эта программа может работать и с другими форматами пакетов, в частности с используемым в дистрибутиве Slackware (там используются самые обычные архивы tar.gz
).
Debian славится стабильностью программного обеспечения, развёрнутого инструментом dpkg
. Набор инструментов APT, который будет рассмотрен в следующей главе, сохраняет это достоинство, при этом освобождая админстратора от управления состоянием пакетов — необходимой, но сложной задачи.