Archlinux: Buat pakej lintas platform dan dari pakej .deb

Kira-kira setahun yang lalu saya menerangkan bagaimana buat pakej untuk Archlinux. Baiklah, hari ini saya akan menerangkan cara membuatnya dari pakej deb, yang digunakan di Debian / Mint / Ubuntu / dll.
Artikel ini timbul setelah membaca soalan dari pengguna di forum jorgegc kerana saya tidak dapat memasang pakej dari AUR, terutamanya kerana sudah usang dan menggunakan versi dihentikan PKGBUILD (Nasib baik saya pernah membuat pakej dengan cara ini), saya juga akan menerangkan bagaimana membuat pakej program yang memerlukan Perpustakaan 32-bit, sudah kod tertutup o sudah disusun dan ia mempunyai pakej yang berbeza untuk dimuat turun.

Asas untuk PKGBUILD adalah sama, hanya dengan beberapa perubahan.
Perubahan pertama adalah penggunaan ayat sekiranya elif oleh Bash


if [ "${CARCH}" = 'x86_64' ]; then
ARCH='amd64'
md5sums=('192a0a222893d59d95f00c34f3c8a674')
depends=('openal' 'lib32-openal')
elif [ "${CARCH}" = 'i686' ]; then
ARCH='i386'
md5sums=('047c670443124193c5cc3dd54da99925')
depends=('openal')
fi
source=("http://www.unaurl.com/files/${name}.$ARCH.deb")

Dalam contoh ini pemboleh ubah telah ditentukan yang kemudiannya akan digunakan untuk mengubah URL di mana pakejnya (dalam kes ini arsitektur pakej untuk dimuat turun).
Di samping itu, bergantung pada seni bina, Jumlah MD5 jadi kami akan mengubahnya menjadi yang sesuai.

Semasa menggunakan makepkg -g untuk menghasilkan Jumlah MD5 Ini hanya akan menghasilkan yang sesuai dengan seni bina yang anda gunakan. Untuk mengetahui jumlah MD5 dari pakej lain, muat turun dan gunakan arahannya fail md5sum.deb untuk mengetahui milik anda

Akhirnya kita melihat bahawa dalam contoh kita mengubah kebergantungan. Dalam beberapa program 64-bit, perlu dipasang Versi 32-bit dari beberapa perpustakaan jadi kita mesti menunjukkannya. Sekiranya tidak diperlukan, tentukan pemboleh ubah dengan cara biasa.

Sekarang untuk pakej .deb kita hanya memerlukan baris berikut di dalam fungsi pakej ():

cd "${srcdir}/"
tar xvzf data.tar.gz -C .
cp -r usr ${pkgdir}

Seperti yang anda lihat, dalam kes ini kita hanya memerlukan 3 baris untuk menghasilkan pakej. Sekiranya ada perkara lain yang diperlukan (contohnya menyalin fail yang tidak disertakan dengan pakej, atau mengubah kandungan satu) anda hanya perlu meletakkannya seperti pakej lain.

Hal yang sama dapat berlaku (dengan beberapa perubahan) jika bukan .deb kita akan menggunakan paket rpm atau jenis pakej lain. Fungsinya membina () tidak diperlukan, jadi kami tidak perlu menambahkannya.

Dan voila, kami sudah mempunyai pakej multilib atau dibuat dari pakej deb yang siap digunakan.
Saya harap anda menyukainya dan ia telah menjelaskan saya dengan baik 😀


Kandungan artikel mematuhi prinsip kami etika editorial. Untuk melaporkan ralat, klik di sini.

32 komen, tinggalkan komen anda

Tinggalkan komen anda

Alamat email anda tidak akan disiarkan.

*

*

  1. Bertanggungjawab atas data: Miguel Ángel Gatón
  2. Tujuan data: Mengendalikan SPAM, pengurusan komen.
  3. Perundangan: Persetujuan anda
  4. Komunikasi data: Data tidak akan disampaikan kepada pihak ketiga kecuali dengan kewajiban hukum.
  5. Penyimpanan data: Pangkalan data yang dihoskan oleh Occentus Networks (EU)
  6. Hak: Pada bila-bila masa anda boleh menghadkan, memulihkan dan menghapus maklumat anda.

  1.   ulsess kata

    Bukankah lebih mudah menggunakan checkinstall?

  2.   Luciano Lagassa kata

    Hai. Saya mempunyai beberapa skrip bash. Satu untuk menghasilkan folder dan fail asas untuk pakej deb. Dan yang terakhir menghasilkan pakej dari semua fail dan folder. Sekiranya anda berminat, saya boleh kongsikan.

    1.    jorgecg kata

      Sudah tentu ia menarik ... sekurang-kurangnya bagi saya.

      Sekarang saya bersama Manjaro, saya menghargai semua maklumat yang mungkin.

  3.   jorgecg kata

    Betapa hebatnya anda, rakan kongsi.

    Saya akan memberitahu anda di forum bahawa jika anda dapat menjelaskan kepada saya bagaimana untuk menyusun pakej .deb dan saya tidak memberitahu anda apa-apa supaya tidak menyalahgunakan kemurahan hati anda…. dan saya pergi ke halaman dan saya melihat bahawa anda telah memuat naik artikel yang menjelaskan keseluruhan proses.

    Ini menunjukkan bahawa anda seorang yang pemurah.

    Saya kata, awak retak.

    Sesuatu ucapan

  4.   Anibal kata

    Ia adalah rakan yang baik, setelah saya mencuba lembut yang saya tidak ingat nama yang ditukar dari .deb menjadi .rpm, tetapi ia tidak berfungsi dengan baik.

    Seseorang yang mempunyai lengkungan dapat menguji apakah perisian ini berjalan lancar ke rpm dan pemasangannya dibuka dengan baik?

    http://www.justcloud.com/download/linux-64

    Ini untuk membuat sandaran di awan, saya sudah lama membayar dan saya mempunyai lebih daripada 40GB di awan =)

  5.   Inspiron kata

    Hebat! Saya selalu memberitahu diri saya bahawa suatu hari saya ingin membuat bungkusan, walaupun ingin mengetahui bagaimana melakukannya :).

    Dalam jenis posting ini, saya menghargai bahawa blog melaksanakan pilihan untuk menambah entri seperti ini dalam "kegemaran" akaun saya

    1.    chinoloco kata

      Setuju, saya menanamnya, tetapi tidak ada 🙂
      Adalah baik juga jika dapat mengikuti pengguna tertentu

  6.   Rabba kata

    Lelaki tua yang hebat, saya telah menggunakan manjaro selama beberapa hari dan untuk kajian saya perlu memasang paket tracer dari Cisco tetapi ia hanya mempunyai pakej .deb versi terbaru dan ke dalam AUR selalu memberi saya ralat ketika menyusun, saya harap dengan langkah-langkah ini saya dapat memasangnya kerana secara paksa saya telah menggunakan linux mint, terima kasih banyak

  7.   mitco kata

    untuk melihat apakah seseorang berani memasukkan AUR Multisystem

    bergantung pada perpustakaan deb yang tidak ada di lengkungan

    Tetapi jika berfungsi, fungsinya adalah untuk membuat pemacu pen multi ISO dengan grub2 lebih baik daripada unetbootin yang hanya berfungsi satu.

    Pada masa ini saya mempunyai ISO ubuntu dari dalamnya yang membolehkan saya menambah gambar jika saya mahu boot dari USB itu sendiri

    tetapi jika tidak ada yang berani menyimpan tiket

  8.   mitco kata

    Maaf, sudah ada pelbagai sistem, dan saya rasa tidak

    1.    mitco kata

      Dalam pelbagai sistem ...

      tetapi bertambah kerana yaourt memberikan masalah, dan mereka meletakkannya sebagai pilihan

  9.   Marcos kata

    Hebat 😀 untuk meluluskan dengan "Purrr" program untuk menamakan semula fail secara pukal.

  10.   Apr4xas kata

    Regards,

    Pada masa ini dalam AUR mereka menghapuskan pakej yang tidak mempunyai fungsi paket (), bagaimana saya dapat mengetahui garis apa yang harus diletakkan di sana? Maksudnya, saya mempunyai beberapa bungkusan dan saya melakukannya dengan cara ini tetapi saya tidak tahu apakah itu baik-baik saja https://github.com/abr4xas/Arch-pkgbuild/blob/master/%20django-admin-honeypot/PKGBUILD yang benar-benar saya lakukan adalah meneruskan apa yang ada di dalam binaan () untuk mengemas () tetapi seperti yang saya katakan, saya tidak tahu jika tidak apa-apa ... Bolehkah anda memberi saya komen dan cadangan anda?

    Terima kasih 😀

  11.   Azazel kata

    Terima kasih atas maklumat yang akan saya tandakan untuk rujukan di masa hadapan.

  12.   kerani kata

    Bolehkah seseorang menjelaskan apa itu kepada saya, saya masih baru, dan saya tidak tahu apakah ini membantu saya memasang pakej .deb tetapi secara tempatan di manjaro, permainan yang tepat. Ya, ia berfungsi?

    Saya mencari dan mereka menyuruh saya memasang pakej deb2targz tetapi saya mendapat ralat ketika memasangnya dari terminal, dan kemudian saya tidak tahu apakah ia boleh

    1.    Ghermain kata

      Perkara yang sama berlaku kepada saya; Saya perlu memasang di Kademar yang berdasarkan Arch; beberapa pakej yang saya hanya dapat masuk .deb
      Bolehkah seseorang menolong saya?

      1.    valdo kata

        Sekiranya maksud anda adalah kegagalan dalam pemasangan deb2targz, saya baru selesai memasangnya dengan arahan yaourt -S deb2targz. Sudah tentu, di ArchLinux.

  13.   Storan Awan Percuma kata

    Catatan yang sangat bermaklumat. Terima kasih kerana berkongsi.

  14.   Burung Marah kata

    Pos yang baik. Terima kasih kerana berkongsi maklumat berguna ini.

  15.   Aplikasi untuk PC kata

    Terima kasih atas catatan yang bermanfaat ini. Ini akan banyak membantu.

  16.   jacob kata

    hai, bolehkah anda meninggalkan skrip untuk penukaran dan bagaimana menggunakannya? Ia sebahagiannya membingungkan, saya sudah mempunyai deb yang ingin saya tukar dan saya tahu bahawa ia mungkin berlaku kerana krom google AUR adalah deb tetapi saya tidak tahu bagaimana membuat "MAKEPKG SI" dengan deb lain 🙁

bool(benar)