Pertanyaan Bagaimana cara membuat paket deb untuk skrip python tunggal?


Saya memiliki skrip python tunggal yang ingin saya distribusikan sebagai paket deb. Ini adalah sebuah indikator yang menunjukkan tanggal lokal di panel Unity. Saya mengikuti membuat paket .deb dari skrip atau binari tapi saya tidak bisa membuat paket deb karena gagal.

Dapatkah seseorang memberi saya instruksi selangkah demi selangkah tentang apa yang harus saya lakukan? Sejauh yang saya tahu skrip ini tergantung pada python-appindicator.

CATATAN:
Saya tidak ingin ada tautan ke instruksi pengemasan Debian / Ubuntu. Saya telah melihat sebagian besar dari mereka. Saya tidak menemukan mereka ramah pemula.


77
2017-12-27 12:12


asal


Sedangkan instruksi pengepakan Debian dan Ubuntu tidak ramah pemula (percayalah, saya tahu), banyak aplikasi GUI yang menciptakan debs untuk Anda hanya mengubah banyak kesalahan ketika Anda menjalankan pemeriksa paket akhir, seperti lintian. Jika Anda serius tentang pengemasan, kemudian mencoba dan melakukan instruksi adalah cara terbaik untuk pergi :) - Thomas Boxley
Saya tidak tahu tentang pengemasan, tetapi fungsionalitas yang Anda coba tambahkan dibangun untuk Unity. - It's Willem


Jawaban:


Apa yang berikut adalah contoh dasar tentang bagaimana paket sumber untuk skrip python mungkin terlihat. Meskipun sebagian besar tutorial pengemasan agak rumit, mereka benar-benar dapat membantu jika Anda menemukan masalah. Yang mengatakan, saya pertama kali belajar dasar-dasar kemasan Debian hanya dengan melihat paket Debian. apt-get source sesuatu yang serupa dan belajar dengan contoh.

Berikut tata letak paket sumber dasar Anda:

my-script/
    -- myScript
    -- debian/
        -- changelog
        -- copyright
        -- compat
        -- rules
        -- control
        -- install

Menjalankan dch --create di direktori untuk membuat format yang benar debian/changelog masuk.

debian / hak cipta harus terlihat seperti:

Format: http://www.debian.org/doc/packaging-manuals/copyright-format/1.0/
Upstream-Name: myScript
Upstream-Contact: Name, <email@address>

Files: *
Copyright: 2011, Name, <email@address>
License: (GPL-2+ | LGPL-2 | GPL-3 | whatever)
 Full text of licence.
 .
 Unless there is a it can be found in /usr/share/common-licenses

debian / compat hanya bisa: 7

debian / aturan:

#!/usr/bin/make -f

%:
    dh $@ --with python2

Perhatikan bahwa harus ada "tab" sebelumnya  dh $@ --with python2, bukan spasi.

debian / kontrol:

Source: my-script
Section: python
Priority: optional
Maintainer: Name, <email@address>
Build-Depends: debhelper (>= 7),
               python (>= 2.6.6-3~)
Standards-Version: 3.9.2
X-Python-Version: >= 2.6


Package: my-script
Architecture: all
Section: python
Depends: python-appindicator, ${misc:Depends}, ${python:Depends}
Description: short description
 A long description goes here.
 .
 It can contain multiple paragraphs

debian / instal:

myScript usr/bin/

File ini menunjukkan file mana yang akan diinstal ke folder mana.

Sekarang bangunlah debuild --no-tgz-check

Ini akan membuat paket deb fungsional. Lintian akan melemparkan beberapa peringatan mengenai kurangnya orig.tar.gz, tetapi kecuali jika Anda berencana untuk membuat proyek hulu yang tepat yang membuat rilis tarball Anda mungkin hanya ingin mengabaikan itu untuk saat ini.


83
2017-12-30 19:25



Sebagai tukang paket (dan backporter), saya mengemas skrip python cukup sering. Saya dapat mengatakan bahwa jawaban ini adalah penjelasan paling lengkap tentang apa yang harus dilakukan untuk membuat paket untuk skrip python tunggal. - Thomas Ward♦
Bisakah Anda juga memperbaruinya untuk Python 3? Saya kira kita perlu melakukan perubahan debian/rules dan debian/control, tapi saya tidak yakin tentang itu. - Aditya
@Aditya, mungkin pertanyaan baru adalah untuk Python3? Jawabannya tidak akan sangat berbeda, tetapi jawaban ini bertujuan untuk menjadi contoh minimum yang paling sederhana / sederhana tentang bagaimana mengemas skrip Python. Tidak yakin saya ingin mengacaukannya dengan beberapa implementasi. - andrewsomething
@andrewsomething: Maka Anda mungkin tertarik yang ini yang mendorong saya untuk meninggalkan komentar itu ... Sedikit pengeditan diperlukan untuk yang satu itu, saya akan mencoba tangan saya untuk itu ... - Aditya
Bagaimana dengan perpustakaan? Jika skrip python mengimpor pustaka maka itu tidak akan berfungsi - D.Snap


  1. buat folder dengan nama apa pun di rumah Anda misalnya: mypyscript
  2. Buka folder dan buat dua folder dengan nama 'DEBIAN' dan 'usr'
  3. Buka folder DEBIAN. Buat file teks (tanpa ekstensi) dengan nama 'kontrol' di sana.
  4. Buka 'kontrol' dan ketik sebagai berikut dan simpan di DEBIAN

    Package: mypyscript
    Version: 0.01
    Architecture: all
    Maintainer: your name<your mail id>
    Installed-Size: 2
    Depends: python-appindicator
    Section: extras
    Priority: optional
    Homepage: your homepage
    Description: describe
    
  5. Kembali ke folder bernama mypyscript. Buka 'usr'. Buat folder bernama 'bin'. Buka 'bin' dan tempelkan file pythonscript Anda di sana.

  6. Anda juga dapat membuat entri menu. Tapi itu tidak penting.
  7. Kembali ke folder home di mana folder 'mypyscript' terletak atau menutup file browser.
  8. Buka terminal. Pastikan terminal berada di folder rumah. mengetik dpkg -b mypyscript .Kemudian tekan enter. Dalam hitungan detik paket deb Anda sudah siap

catatan: silakan isi file 'kontrol' dengan benar. Jangan gunakan apostrof. Ini hanya untuk menunjukkan nama.


18
2017-12-30 16:16



Bekerja dengan sangat baik. :-) Terima kasih! - Ionică Bizău
Bekerja bagus! Jawaban yang diterima sangat kompleks. - SuB
Jangan lupa untuk mengubah izin 'myscript' menjadi 755 dan pemiliknya untuk melakukan root. - SuB
Bagaimana cara membuat entri menu? - To Do


Anda bisa mencobanya Debrasikan, alat GUI untuk membuat paket.


9
2017-12-30 13:55



Debcreate itu keren. Saya suka sejauh ini, baru mulai menggunakannya hari ini untuk membangun dari kode sumber python. - answerSeeker


Saya akan memeriksa dengan cepat, bagus untuk membuat aplikasi cepat dan menghasilkan debs google atau Anda dapat menemukan tutorial di sini http://developer.ubuntu.com/


3
2017-12-30 23:16



Ya, saya juga suka menambahkan. wiki.ubuntu.com/Quickly, jika Anda lebih suka video seperti saya, Youtube adalah sumber daya yang bagus - Jiew Meng
Dengan cepat tidak dapat mengubah paket menjadi paket .deb - Archisman Panigrahi


Mencoba pkgme. Seharusnya Hanya Bekerja.

Instal melalui:

sudo apt install pkgme

Jalankan via:

pkgme
debuild

(Pengembang baru mungkin harus menjalankan gpg --gen-key, Lihat Pembuatan Kunci Pengembangan untuk melakukan ini dengan benar)


2
2017-12-30 20:16





Sementara itu ada artikel yang menjelaskan dilema yang ditemukan https://www.nylas.com/blog/packaging-deploying-python/. Ini terutama menyatakan bahwa ada dh-virtualenv bekerja sama dengan make-deb untuk dengan mudah menyebarkan kode Python hanya menggunakan file setup.py. Panduan singkat dapat ditemukan di https://gist.github.com/JeOam/bc6cbf38f04d6f9dbf81


1
2017-11-18 19:46





Anda bisa mencoba menggunakan Debrasikan

Ini adalah Antarmuka Gui untuk membuat paket dan hal-hal yang dapat Anda gunakan PPA juga jika Anda tidak ingin mengunduhnya dari situs web yang tercantum di atas.

sudo add-apt-repository ppa:antumdeluge/<ppaname>; sudo apt update; sudo apt install debreate

Ive memadatkan ppa sehingga berjalan sebagai satu baris kode! Terima kasih atas pertanyaan yang luar biasa dan pastikan untuk terus melonggarkan baris kode tersebut ke terminal!


0
2017-07-08 02:36