Перейти к содержимому

Как переделать deb в rpm

  • автор:

Как конвертировать файлы DEB в RPM в Linux

Системы Redhat/Fedora/CentOS требуют для установки пакетов .rpm. Иногда вы можете обнаружить, что пакет RPM недоступен для нужной вам программы или утилиты, но вместо него доступен пакет DEB. Пакеты DEB используются для установки в системах Ubuntu/Debian и не могут быть использованы непосредственно в системах Redhat/Fedora/CentOS. Поэтому вам нужно будет преобразовать DEB в RPM-пакет, чтобы продолжить установку. В этой статье мы рассмотрим, как конвертировать файлы DEB в RPM в Linux.

linux

Как преобразовать файлы DEB в RPM в Linux

Мы будем использовать программу Alien для преобразования .deb в .rpm пакет.

Установка Alien и его зависимостей

Мы перечислили шаги как для RPM, так и для DEB-системы. Вы можете использовать любую из них в зависимости от вашей системы Linux.

Redhat/CentOS

Откройте терминал и выполните следующую команду для установки программы Alien. Сначала нам нужно включить EPEL и рабочий стол Nux.

Установите последнюю версию рабочего стола Nux. Мы установили версию 0.5. Вы можете установить другую версию в соответствии с вашими требованиями.

Наконец, установите пакет alien.

Fedora

В Fedora вам нужно выполнить всего одну команду, показанную ниже.

Debian/Ubuntu

Вот команда для установки пакета alien в Ubuntu/Debian Linux.

Преобразование файлов DEB в файлы RPM

Вы можете использовать опцию -r для преобразования DEB в RPM-файлы. Вот пример. Мы используем команду wget для загрузки .deb файла, а затем используем команду alien двумя разными способами для преобразования его в RPM файл. Они оба дают одинаковый результат.

Установка конвертирования RPM-файла

Если вы попытаетесь напрямую установить сгенерированный выше RPM-файл, иногда он может выдать сообщение об ошибке из-за совместимости параметров пакета. В сообщении будут перечислены 1 или несколько файлов, вызывающих конфликт, например

Поэтому нам нужно выполнить следующую команду, чтобы включить репозиторий epel-testing и установить инструмент rpmrebuild для изменения параметров установки пакета.

Теперь выполните следующую команду для пересборки пакета

Это откроет настройки пакета в текстовом редакторе. Перейдите в раздел %files% и удалите строки, которые относятся к конфликтующим файлам, перечисленным выше.

Сохраните и выйдите из файла. При выходе вас спросят, хотите ли вы продолжить перестройку. Введите Y, чтобы продолжить.

После завершения пересборки вы можете установить его должным образом.

После завершения установки вы можете проверить ее с помощью следующей команды.

Вот и все. В этой статье мы узнали, как преобразовать DEB в RPM-файл и установить его в системах Redhat/Fedora/CentOS Linux.

Создание rpm-пакетов из deb-пакетов

Программа GUI-deb предназначена для создания пакетов в формате deb. Однако, из пакетов в формате deb можно легко получить пакеты в другом очень популярном формате — rpm. Сделать это можно при помощи утилиты alien.

Чтобы получить из deb-пакета rpm-пакет, достаточно запустить alien со следующими параметрами:
sudo alien —to-rpm —scripts ./mypackage_1.0.0_i368.deb
Здесь «mypackage_1.0.0_i368.deb» надо заменить на название файла пакета, который вам нужно преобразовать. Имя получаемого пакета в формате rpm будет автоматически сформировано alien на основе содержащейся в пакете информации. Параметр «—scripts» сообщает alien, что при преобразовании также надо конвертировать содержащиеся в пакете инсталляционные скрипты (подробнее о скриптах написано в разделе «Скрипты в deb-файле»). Запуск через sudo (с правами root) нужен для правильной установки прав на содержащиеся в пакете файлы — если запустить alien не с правами root, программа выдаст предупреждающее сообщение о том, что права на файлы, возможно, установлены неправильно.

Программа GUI-deb может автоматически запускать alien после сборки deb-пакета для получения из него rpm-пакета.

Как конвертировать DEB в RPM и наоборот

Ответ: Спасибо за комплименты, в то небольшое количество свободного времени, которое у меня есть, я пытаюсь поделиться своими знаниями о мире Linux, потому что я хочу помочь распространить информацию, а также потому, что я верю в философию, которую представляет Linux (Столлман Диксит). Что касается конверсии, конечно, можно. Вам просто нужно установить программу иностранец.

Конвертировать RPM в DEB

1.- Установить иностранец. В Debian и производных версиях это будет выглядеть так:

2.- Теперь осталось только использовать пришельца для преобразования.

Готов! Теперь вы можете установить пакет DEB, созданный с помощью команды Dpkg или просто дважды щелкнув по нему.

Конвертировать DEB в RPM

Чтобы преобразовать в RPM, вы должны использовать опцию -r.

Готов! Теперь вы можете установить пакет RPM, созданный с помощью команды rpm на вашей Fedora, CentOs и т. д.

Конвертировать в SLP, LSB, Slackware TGZ

Alien также позволяет конвертировать пакеты в форматы, используемые в других дистрибутивах: Stampede slp, LSB и Slackware tgz.

Чтобы увидеть доступные варианты, запустите:

Чтобы вы могли взглянуть, вывод этой команды выглядит следующим образом:

Спасибо Фавио Тапиа Веласкес за предложение темы!

Содержание статьи соответствует нашим принципам редакционная этика. Чтобы сообщить об ошибке, нажмите здесь.

Полный путь к статье: Из Linux » ФайлДавайте использовать Linux » Как конвертировать DEB в RPM и наоборот

Вы можете быть заинтересованы

4 комментариев, оставьте свой

Оставьте свой комментарий Отменить ответ

Здравствуйте, я нашел ваш блог с помощью Google, пока
ищите похожий вопрос, ваш веб-сайт появился здесь, он выглядит великолепно.

Я добавил его в закладки Google.
Привет, только что обратил внимание на ваш блог через Google и обнаружил, что он действительно информативен. Я буду осторожен с Брюсселем. Буду признателен, если вы продолжите это в будущем.
Многие другие люди, вероятно, извлекут пользу из вашего письма.

Также посетите мой сайт… никотиновые соки

Решение для установки пакетов .deb на дистрибутивы с установкой пакетов на основе RPM.

Проверено…
Я думал, что это будет сложно в MoLinux, но делать было нечего, через консоль все прошло нормально, я скачал openproj.rpm и с инопланетянином установили его за считанные секунды . »EYE» Мне пришлось используйте команду fakeroot, если в противном случае не ответили.
Поздравляю с блогом, так держать.

Приветствую и поздравляю с публикацией «Как конвертировать DEB в RPM и наоборот», пожалуйста, обратите внимание на мою просьбу о помощи в преобразовании и установке пакетов tar.gz в rpm в операционной системе Linux Fedora. Следует отметить, что я уже установил инопланетный конвертер и, используя этот конвертер, сначала конвертирую пакет tar.gz в deb, а затем конвертирую этот файл deb в rpm, но при установке я получаю сообщение:

#rpm -Uvh скобки-релиз-1.6-3.noarch.rpm
Подготовка… ################################ [100%]
файл / из установки brackets-release-1.6-3.noarch конфликтует с файлом из пакета filesystem-3.2-35.fc23.x86_64

и из другого сообщения # rpm -ivh brackets-release-1.6-3.noarch.rpm
################################ [100%]
файл / из установки brackets-release-1.6-3.noarch конфликтует с файлом из пакета filesystem-3.2-35.fc23.x86_64

Пожалуйста, еще раз, пожалуйста, будьте достаточно любезны, чтобы помочь мне с этой проблемой преобразования или установки.

Use alien to convert Deb to RPM (and RPM to Deb)

Alien is a command line tool that allows you to convert Debian packages to RPM packages, and vice versa. This blog post will illustrate how to convert a Debian package to an RPM and similarly, how to convert an RPM package to a Debian package.

Installing Alien

Installation on Debian systems

alien can usually just be installed using apt-get on most Debian based systems. You’ll also want fakeroot .

Installation on Redhat systems

You’ll need the following dependencies installed.

Note: to convert RPM to Debian Packages, you’ll need to install all the Debian tools (dpkg, dpkg-dev, debhelper), which is non-trivial on Redhat systems, so we recommend just finding a Debian system instead.

Extract the xz archive.

Visit the newly extracted directory.

Generate the Makefile .

Run the Makefile .

Install the alien tool:

Converting an RPM to Debian package with Alien

For the example RPM package, we’ll download our packagecloud-test-1.1-1.x86_64.rpm package, from the packagecloud-test-packages repository.

Now, just run alien on it (using fakeroot ).

Note how it correctly changed RPM’s architecture x86_64 to the Debian nomenclature: amd64 .

You should now have a packagecloud-test_1.1-2_amd64.deb package in that same directory.

Let’s just install it with dpkg -i .

Finally, you should be able to run our packagecloud_hello program to verify everything worked.

Converting a Debian package to RPM with Alien

For the example Debian package, we’ll download our packagecloud-test_1.1-2_amd64.deb package from the packagecloud-test-packages repository.

Again, we run alien on it (in a fakeroot ), but this time with the —to-rpm flag.

You should now have a packagecloud-test-1.1-3.x86_64.rpm package in that same directory.

Let’s install that RPM on a Redhat based system.

Finally, you should be able to run our test program to verify everything worked.

How does Alien work?

Because Debian and RPM packages are a special kind of archive, automatically transforming between them is possible. For example, to transform an RPM to a Debian package, you would move the contents of an RPM cpio archive, to an ar archive.

Common Alien issues

It’s important to note that since Alien is just converting between package archive formats, the package you get may not always install, or work as desired, once installed.

Dependency Chain

It’s entirely possible that the original package dependency chain differs from the desired target system. For instance, a binary in the original package was linked against glibc-2.8 but the target system only has glibc-2.1 installed. It’s unlikely this package will work, and you might have to build a native RPM or Debian package instead.

Post/Pre/Uninstall scripts

Debian and RPM packages have shell scripts that can run before and/or after your install (during uninstall, also). By default, Alien will not include these in the converted package, as there is a high likelihood scripts written for RPM packages won’t work for a Debian system, and vice versa. It might be worth inspecting your original Debian or RPM package to see if the included scripts will work and passing —scripts to Alien, if so.

Service initialization

Converting service packages (like redis, apache, mysql, etc) with Alien is tricky because these packages tend to register themselves with the initialization service provided by the native operating system. For example, newer Ubuntu packages will want to use systemd instead of upstart or sysvinit, which is what Redhat systems usually want. The package will install successfully, but the service will not be running, as expected.

Useful Alien options

If you want to bump the version number, you can use —bump=number .

To munge/fix permissions, you can use —fixperms .

Install scripts are not included by default, but you can include them using —scripts .

You can run lintian (must already be installed) on the generated Debian package by using —test .

Note: Running —test with —to-rpm does not run rpmlint , as you may expect.

Conclusion

While finding or building native Debian or RPM packages is ideal, it’s still useful to know how to convert between them in a pinch. Be sure to check out the official alien website for more information.

SHARE THIS ARTICLE VIA:

Related posts

10 most popular Linux distributions, and why they exist

This article introduces the 10 most popular Linux distributions and why they .

How to extract and disassemble a Linux kernel image (vmlinuz)

This post explains how to extract and disassemble a Linux kernel image (vmlin.

Acceptance Testing Using Capybara and PhantomJS

You can run acceptance testing using Capybara and PhantomJS. This post includ.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *