Herhangi bir Linux dağıtımında çalışacak bir uygulama yazmak istersem ne bilmem gerekir?


15

Herhangi bir Linux yüklemesinde çalıştırmak için herhangi bir kod yeniden yazmak zorunda kalmadan istediğiniz bir uygulama yazmayı planlıyorum (belki arabirim, GNOME vs KDE, vb hariç).

Dağıtımlar arasındaki farkların minutia'larında çok deneyimli değilim ve aynı zamanda proje hakkında ayrıntılı bilgi veremem, çünkü sadece etkileşim aşamasına girmesi dışında sadece planlama aşamasına giriyor. olabildiğince fazla bilgisayar donanımı ile.


açık kaynak mı yoksa tescilli mi? derlenmiş veya yorumlanmış mı?
xenoterracide

açık kaynak kodlu ve derlenmiş.

o zaman oracle yaptığı gibi, programınızı yeniden
bağlayacak

Yanıtlar:


10

Gelişirken akılda tutulması gereken bazı noktalar,

  1. Standart bir derleme sistemi kullanın
  2. Sabit kodlama kitaplığı yollarından kaçının
  3. pkg-configbunun yerine harici paketleri bulmak gibi araçlar kullanın.
  4. Uygulamanızın bir GUI'si wxWidgetsvarsa, çalıştırdığınız yere bağlı olarak yerel UI öğelerini oluşturabilecek bazı çerçeveler kullanın .
  5. Diğer dağıtımlarda çalışmayan paketlerle bağımlılıklar oluşturmaktan kaçının.

Uygulamanızın tüm dağıtımlarda çalıştığından emin olmanın tek yolu, aslında çalıştırıp test etmektir. Bunu yapmanın bir yolu, her dağıtım için sanal makineler oluşturmaktır. Bunu yapmak için VirtualBox kullanılabilir. Bu tür testler için kutumda yaklaşık 8 sanal makinem var.

Her dağıtım paketleri yüklemek için farklı bir yol kullandığından uygulamayı dağıtma konusunda çok fazla genelleme yapamayacağınızı düşünüyorum. Debian kullanır debve fedora rpm.


3
sadece düz kodlama yollarından kaçının, ALL distroları arasındaki en büyük fark paket yöneticileri ve nereye koyduklarıdır. Her bir dosya ve dizini sizden farklı bir yere koyacaklarını varsayın.
xenoterracide

2

Sadece benim 2c, ama resmi depolarda paketleri ile gelen veya kaynaktan derlenmiş uygulamaları ile daha az baş ağrısı vardı. Üçüncü taraf ikili dosyaları olarak dağıtılan uygulamalar, bazı bağımlılık sorunlarından muzdarip olma eğilimindedir. Genellikle bunları izlemem ve manuel olarak çözmem gerekecek.

Yani, bir Linux uygulaması yayınlayacak olsaydım, ya onu paketlemeye ve resmi depolara yerleştirmeye çalışırdım. Aksi takdirde, kaynak formda dağıtır ve kullanıcının kendi sistemi için derlemesini isterim.


2

Gömülü olmayan Linux için yazıyorsanız, akılda tutulması gereken en önemli şey, farklı dağıtımların farklı bir kütüphane sürümleri koleksiyonuna sahip olacağıdır. Bu yüzden yeterince eski bir taban çizgisi belirlemelisiniz. Debian yavaşça güncellendiğinde, Debian kararlı (ya da piyasaya sürüldükten sonraki birkaç ay içinde var olduğunda eski) makul bir seçim olma eğilimindedir.

Her dağıtım için ayrı ayrı paketlemeniz gerekir. Başvurunuz açık kaynak kodluysa ve hiç başarılı değilse, onu alan ve ambalaja katkıda bulunan birine güvenebilirsiniz, bu yüzden temel bir beceri değildir. Ambalajlama dışında, dağılımlar arasındaki farklar çoğunlukla sistem yönetimini etkiler, geliştirme veya günlük kullanımı etkilemez.

Çekirdeği yamalayacaksanız, her dağıtımın uyumsuzluklara neden olabilecek kendi yamaları olduğundan ve her dağıtımın farklı çekirdek arabirim kümelerine güvenebilecek kullanıcı alanı ayarları olduğundan (örneğin gereksinimler) daha fazla dağıtımla sınamanız gerekir. bazı şeylerin modül olmaması için).

Uygulamanızın gömülü sistemlerde (burada sunucu, masaüstü veya dizüstü bilgisayar olmayan bir şey anlamına gelir) çalışmasını istiyorsanız, bir Linux çekirdeği çalıştırdığında bile genellikle normal kütüphanelere sahip değilse, yukarıda yazdıklarımın doğru olmadığını unutmayın, ile başlayan Glibc lehine kaçınmış olmak μClibc , dietlibc , Bionic vs



0

Dağıtımlar çoğunlukla ambalajlama ve uygulama varsayılanları / yapılandırmalarında farklılık gösterir. Belirli bir mimaride çalışan her kod, o mimarinin her dağıtımında çalışmalıdır. Ayrıca GNOME uygulamalarını KDE'de veya tam tersi şekilde kolayca çalıştırabilirsiniz, böylece size / kullanıcı tabanınıza en uygun olanı seçebilirsiniz ve işiniz bitti!


0

Ana şey bir dil seçmektir. Bu hangi dilde yürütülecek? Gerçekten herhangi bir linux dağıtımında çalıştırmak istiyorsanız, Python'a yazabilirsiniz. Linux üzerinde çalışacak herhangi bir python uygulaması (temelde) 0 değişiklikle herhangi bir linux dağıtımında çalışacaktır.

Python'un gerçekten güzel GTK ve Qt bağlayıcıları var. Hiç gtk ile çalışmadım, ancak PyQt ile çalışmak gerçekten harika.

Python'un avantajları, muhtemelen herhangi bir uzantıyı derlemenize gerek kalmayacağıdır (tamamen ne yazdığınıza bağlıdır. Gerek duysanız bile, oldukça kolaydır.) Ve ayrıca pypi aracılığıyla harika bir dağıtım kaynağınız var . Oradan python programlarını kurmak genellikle dağıtım paketi deposundan daha da kolaydır.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.