Menginstal paket deb di Arch - Apakah mungkin?

67

Masalahnya sederhana - saya memiliki paket deb dan saya ingin menginstalnya di Arch Linux saya. Apakah ini mungkin? Jika ya, bagaimana?

BKC
sumber
7
Perhatikan bahwa file .deb hanyalah arsip yang dapat dikompres pada sistem apa pun. Bergantung pada seberapa rumit proses instalasi, itu mungkin cukup untuk "menginstal" itu.
CVn

Jawaban:

48

Apa itu mungkin? Iya. Apakah itu ide yang bagus? Itu tergantung. Anda hanya perlu melakukan ini jika aplikasi hanya ada sebagai .debpaket. Ini jauh lebih mungkin bahwa Anda bisa mengambil sumber hulu dan menulis PKGBUILD sederhana untuk menginstalnya dengan pacman.

Anda juga harus mencari AUR untuk memastikan bahwa seseorang belum melakukan ini.

jasonwryan
sumber
4
Perhatikan, bahwa bahkan jika paket sumber tidak disediakan (atau mudah diakses), .debfile mudah diekstraksi libarchive. Dan, makepkgmenggunakan bsdtar(yang menggunakan libarchive) secara default untuk mengekstrak sumber dalam PKGBUILD. Hasil dari rantai ketergantungan ini adalah Anda dapat dengan mudah menulis PKGBUILDyang menggunakan .debarsip sebagai file sumber. : D
HalosGhost
39

dpkg untuk Arch ada. Anda harus dapat menginstal .debpaket pada arch, tetapi Anda juga tidak boleh menggunakannya pacman, jadi gunakan saja untuk beberapa paket tertentu.

Perintah default terlihat seperti:

# dpkg -i package.deb
superuser0
sumber
9
Menggunakan manajer paket alternatif, meskipun opsi, bukanlah solusi yang benar. Solusi yang benar adalah menulis a PKGBUILDuntuk menghasilkan paket asli-pacman.
HalosGhost
1
perintah tidak ditemukan: dpkg
zygimantus
6
Bahkan jika itu bukan cara yang benar untuk melakukannya, itu menjawab pertanyaan asli ... "Apakah mungkin untuk menginstal paket deb, dan bagaimana melakukannya" dijawab jauh lebih baik dengan jawaban ini, daripada hanya mengatakan " tulis PKGBUILD untuk menghasilkan paket asli ", karena bukan itu yang diminta pengguna ...
svin83
10

Mungkin? Ya, tetapi ada berbagai metode berdasarkan kasus penggunaan.

Asumsi: Paket debian tidak memiliki paket yang setara dalam repositori resmi Arch (atau Arch based Distribution).

  1. Instal yaourtmenggunakan pacman:

    sudo pacman -S yaourt

Alasan: yaourt adalah front-end (berbasis CLI) untuk pacman yang digunakan untuk meminta & menginstal paket-paket AUR . Dalam hal paket debian telah dikemas ulang sebagai AUR oleh orang lain.

  1. Instal package_namemenggunakan yaourt:

    sudo yaourt -S package_name

note: ganti package_namedengan nama paket debian seperti yang ditemukan di AUR . Itu akan mencoba untuk menginstal dependensi sendiri menggunakan pacman.

Alternatif

Asumsi: Paket Debian belum dikemas ulang sebagai paket Arch di AUR.

  1. Instal debtapdari yaourt:

    sudo yaourt -S debtap
  2. Buat paket yang setara menggunakan debtap:

    debtap package_name.deb
  3. Instal menggunakan pacman:

    sudo pacman -U package_name.pkg

Bukan cara yang disarankan (mungkin berbahaya)

Metode ini mencoba menginstal paket menggunakan format kemasan debian di Arch, yang tidak direkomendasikan karena kemungkinan bahaya merusak instalasi Anda. Jika menggunakan metode ini, disarankan untuk siap dengan gambar disk penyelamat Arch & cadangan data pengguna / ruang .

  1. Instal dpkgmenggunakan yaourt:

    sudo yaourt -S dpkg
  2. Instal paket debian menggunakan dpkg:

    sudo dpkg -i package_name.deb
ToxicMender
sumber
7

Anda dapat menginstal dpkg oleh: yaourt dpkg.

Jika tidak yaourt, Anda bisa mendapatkannya dari halaman AUR-nya .

Kemudian hanya cdke tempat Anda meletakkannya dan dpkg -i package.debapa pun paketnya

willow
sumber
1
Komentar saat ini pada paket AUR untuk status dpkg itu sudah ketinggalan zaman dan "Jangan menggunakannya sebagai ganti 'pacman' Arch." Apakah ini berarti pacman sekarang dapat digunakan untuk menginstal paket deb?
gromain
2
@gain saya yakin mereka mengatakan bahwa untuk memberi tahu pengguna yang tidak tahu bahwa mereka seharusnya tidak menggunakan manajemen paket Debian di Arch secara default - itu harus menjadi pengecualian daripada aturan.
Czipperz
1
Paket ini kedaluwarsa.
zygimantus