Встановлення пакету .deb в Arch - чи це можливо?


67

Проблема проста - у мене є пакет .deb, і я хочу встановити його на своєму Arch Linux. Чи можливо це? Якщо так, то як?


7
Зауважте, що .deb файли - це лише архіви, які можна нестискати в будь-якій системі. Залежно від того, наскільки складний процес встановлення, цього може бути достатньо для його "встановлення".
CVn

Відповіді:


48

Це можливо? Так. Це гарна ідея? Це залежить. Вам це дійсно потрібно буде робити, лише якщо додаток існує лише як .debпакет. Набагато ймовірніше, що ви можете просто схопити вихідне джерело і написати простий PKGBUILD, щоб встановити його з Pacman.

Вам також слід пошукати AUR, щоб переконатися, що хтось цього ще не зробив.


4
Зауважте, що навіть якщо вихідний пакет не надається (або легко доступний), .debфайли легко витягуються за допомогою libarchive. І makepkgвикористовує bsdtar(що використовує libarchive) за замовчуванням для вилучення джерел у PKGBUILD. Результатом цього ланцюжка залежностей є те, що ви можете легко записати PKGBUILDs, які використовують .debархіви як вихідні файли. : D
HalosGhost

39

dpkg для Arch існує. Ви повинні мати можливість встановлювати .debпакети в арку, але ви також не повинні використовувати їх замість pacman, а просто використовувати їх для декількох вибраних пакетів.

Команда за замовчуванням виглядає так:

# dpkg -i package.deb

9
Використання альтернативного менеджера пакунків, хоч і варіант, не є правильним рішенням. Правильне рішення - написати "a" PKGBUILDдля створення пакета "pacman".
HalosGhost

1
команда не знайдена: dpkg
zygimantus

6
Навіть якщо це не правильний спосіб зробити це, він відповідає на оригінальне запитання ... "Чи можна встановити пакет дебюту і як це зробити?" написати PKGBUILD, щоб генерувати нативний пакет ", оскільки користувач не питає про це ...
svin83

10

Можливо? Так, але різні методи існують на основі використання.

Припущення: Пакет debian не має еквівалентного пакета в офіційному сховищі Arch (або на основі Arch).

  1. Встановити yaourtза допомогою pacman:

    sudo pacman -S yaourt

Причина: yaourt - це передній (заснований на CLI) для pacman, який використовується для запиту та встановлення AUR- пакетів. У випадку, якщо пакет debian вже був перепакований як AUR кимось іншим.

  1. Встановіть за package_nameдопомогою yaourt:

    sudo yaourt -S package_name

Примітка: замініть package_nameім'я пакету debian, як знайдено в AUR . Він спробує встановити залежності самостійно за допомогою pacman.

Альтернатива

Припущення: Пакет Debian ще не перепакований як пакет Arch в AUR.

  1. Встановити debtapз yaourt:

    sudo yaourt -S debtap
  2. Створіть еквівалентний пакет, використовуючи debtap:

    debtap package_name.deb
  3. Встановити за допомогою pacman:

    sudo pacman -U package_name.pkg

Не рекомендований спосіб (можливо небезпечний)

Цей метод намагається встановити пакунок у форматі упаковки debian на Arch, що не рекомендується через можливу небезпеку пошкодження вашої установки. Якщо використовується цей метод, рекомендується бути готовим до зображення рятувального диска Arch та резервного копіювання даних / простору користувача .

  1. Встановити dpkgза допомогою yaourt:

    sudo yaourt -S dpkg
  2. Встановіть пакунок debian за допомогою dpkg:

    sudo dpkg -i package_name.deb

7

Ви можете встановити DPKG по: yaourt dpkg.

Якщо у вас немає yaourt, ви можете отримати його зі сторінки AUR .

Тоді просто cdтуди, куди ви його поклали, і що dpkg -i package.debб там не було


1
У поточному коментарі до пакету AUR для dpkg зазначено, що він застарів, і "Не використовуйте його замість" pacman "Arch." Чи означає це, що Pacman зараз може використовуватися для встановлення пакетів deb?
gromain

2
@gromain Я вважаю, що вони говорять, щоб сказати необізнаному користувачеві, що він за замовчуванням не повинен використовувати управління пакетами Debian в Arch - це має бути виняток, а не правило.
Czipperz

1
Цей пакет застарів.
зигімантус
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.