Saya berencana untuk menulis aplikasi yang ingin saya jalankan di instalasi Linux apa pun tanpa harus menulis ulang kode apa pun dalam melakukannya (kecuali mungkin antarmuka, GNOME vs KDE, dll).
Saya tidak terlalu berpengalaman dalam detail perbedaan antara distro, dan saya juga tidak bisa memberikan rincian tentang proyek karena itu baru saja memasuki tahap perencanaan selain akan menusuk jauh di dalam kernel untuk berinteraksi dengan sebanyak mungkin perangkat keras komputer.
Jawaban:
Beberapa hal yang perlu diingat ketika berkembang,
pustaka yangsulitpkg-config
mencari paket eksternal sebagai gantinya.wxWidgets
yang dapat merender elemen UI asli tergantung di mana Anda menjalankan.Satu-satunya cara untuk memastikan aplikasi Anda berfungsi pada semua distribusi adalah dengan benar-benar menjalankan dan mengujinya. Salah satu cara Anda bisa melakukan ini adalah dengan membuat mesin virtual untuk setiap distribusi. VirtualBox dapat digunakan untuk melakukan ini. Saya memiliki sekitar 8 mesin virtual di kotak saya untuk pengujian semacam ini.
Saya pikir Anda tidak dapat menggeneralisasi terlalu banyak pada penerapan aplikasi karena setiap distribusi menggunakan cara berbeda untuk menginstal paket. Penggunaan Debian
deb
dan fedorarpm
.sumber
Hanya 2c saya, tapi saya kurang sakit kepala dengan aplikasi yang datang dengan paket di repositori resmi atau yang dikompilasi dari sumber. Aplikasi yang didistribusikan sebagai binari pihak ketiga cenderung mengalami beberapa masalah ketergantungan. Saya biasanya perlu melacak ini dan mengatasinya secara manual.
Jadi, jika saya akan merilis aplikasi Linux, saya akan bekerja untuk mengemasnya dan membawanya ke repositori resmi. Kalau tidak, saya akan mendistribusikannya dalam bentuk sumber dan meminta pengguna mengkompilasinya untuk sistem mereka.
sumber
Jika Anda menulis untuk Linux yang tidak tertanam, hal utama yang perlu diingat adalah distribusi yang berbeda akan memiliki koleksi versi pustaka yang berbeda. Jadi, Anda harus menetapkan garis dasar yang cukup lama. Ketika Debian memperbarui dengan lambat, Debian stabil (atau yang lama stabil ketika itu ada, dalam beberapa bulan setelah rilis) cenderung menjadi pilihan yang masuk akal.
Anda harus mengemas secara terpisah untuk setiap distribusi. Jika aplikasi Anda bersifat open source dan sama sekali berhasil, Anda dapat mengandalkan seseorang yang mengambilnya dan berkontribusi dalam pengemasannya, jadi itu bukan keahlian yang penting. Selain kemasan, perbedaan antara distribusi sebagian besar memengaruhi administrasi sistem, bukan pengembangan atau penggunaan sehari-hari.
Jika Anda akan menambal kernel, Anda harus menguji dengan lebih banyak distribusi karena setiap distribusi memiliki tambalan sendiri yang dapat menyebabkan ketidakcocokan dan setiap distribusi memiliki pengaturan userland yang mungkin bergantung pada set berbeda dari antarmuka kernel yang tersedia (misalnya persyaratan untuk beberapa hal bukan menjadi modul).
Perhatikan bahwa apa yang saya tulis di atas tidak benar jika Anda ingin aplikasi Anda bekerja pada sistem embedded (di sini berarti apa pun yang bukan server, desktop atau laptop), yang bahkan ketika mereka menjalankan kernel Linux sering tidak memiliki perpustakaan yang biasa, dimulai dengan Glibc yang menghindari μClibc , dietlibc , Bionic , dll.
sumber
Saya menemukan ini
Linux Standards Base
sangat membantu, terutama ketika aplikasi Anda menyertakan layanan (daemon). Lihat beberapa situs ini:Tetapi jika saya harus terbatas pada sumber daya saja, itu mungkin Standar Hierarki File .
sumber
Sebagian besar distro berbeda dalam pengemasan dan default / konfigurasi aplikasi. Setiap kode yang berjalan dalam arsitektur yang ditentukan harus dijalankan pada setiap distro untuk arsitektur itu. Anda juga dapat dengan mudah menjalankan aplikasi GNOME di KDE dan sebaliknya, sehingga Anda dapat memilih salah satu yang paling cocok untuk Anda / pengguna Anda dan Anda selesai!
sumber
Yang utama adalah memilih bahasa. Dalam bahasa apa ini dijalankan? Jika Anda benar-benar ingin menjalankan distro linux apa pun, Anda bisa menulisnya dengan Python. Aplikasi python apa pun yang akan berjalan di linux (pada dasarnya) akan berjalan di distro linux apa pun dengan 0 modifikasi.
Python juga memiliki pengikat GTK dan Qt yang sangat bagus. Saya tidak pernah bekerja dengan gtk, tetapi PyQt sangat bagus untuk bekerja dengannya.
Manfaat untuk python adalah bahwa Anda mungkin tidak perlu mengkompilasi ekstensi apa pun (itu benar-benar tergantung pada apa yang Anda tulis sekalipun. Bahkan jika Anda perlu, itu sangat mudah.) Dan Anda juga memiliki sumber distribusi yang bagus melalui pypi . Menginstal program python dari sana biasanya bahkan lebih mudah daripada repositori paket distro.
sumber