ฉันต้องทราบอะไรบ้างหากฉันต้องการเขียนแอปพลิเคชันที่จะทำงานบน distro Linux ใด ๆ


15

ฉันวางแผนที่จะเขียนแอพที่ฉันต้องการให้สามารถใช้งานกับการติดตั้งลีนุกซ์ได้โดยไม่ต้องเขียนโค้ดใหม่อีกเลย (ยกเว้นอินเทอร์เฟซ GNOME vs KDE เป็นต้น)

ฉันไม่ค่อยมีประสบการณ์เกี่ยวกับความแตกต่างระหว่าง distros และฉันก็ไม่สามารถให้รายละเอียดเกี่ยวกับโครงการได้เพราะมันเพิ่งเข้าสู่ขั้นตอนการวางแผนอื่น ๆ นอกจากที่มันจะโผล่เข้าไปลึกเข้าไปในเคอร์เนลเพื่อโต้ตอบ กับฮาร์ดแวร์ของคอมพิวเตอร์ให้มากที่สุด


โอเพนซอร์สหรือกรรมสิทธิ์? รวบรวมหรือตีความ?
xenoterracide

โอเพ่นซอร์สและรวบรวม

ถ้าอย่างนั้นคุณไม่ต้องกังวลเกี่ยวกับการเขียนแอพ / makefile เล็ก ๆ หรืออะไรที่จะเชื่อมโยงโปรแกรมของคุณเหมือนที่ oracle ทำ
xenoterracide

คำตอบ:


10

บางประเด็นที่ควรทราบเมื่อพัฒนา

  1. ใช้ระบบบิลด์มาตรฐาน
  2. หลีกเลี่ยงเส้นทางไลบรารีของรหัสที่เข้ารหัสยาก
  3. ใช้เครื่องมือที่ต้องการpkg-configค้นหาแพ็คเกจภายนอกแทน
  4. หากแอปพลิเคชันของคุณมี GUI ให้ใช้เฟรมเวิร์กบางอย่างwxWidgetsที่สามารถแสดงองค์ประกอบ UI ดั้งเดิมโดยขึ้นอยู่กับตำแหน่งที่คุณเรียกใช้
  5. หลีกเลี่ยงการสร้างการอ้างอิงด้วยแพ็กเกจที่จะไม่ทำงานในการกระจายอื่น ๆ

วิธีเดียวที่จะทำให้แอปพลิเคชันของคุณทำงานได้อย่างสมบูรณ์ในการกระจายทั้งหมดคือการเรียกใช้และทดสอบจริง วิธีหนึ่งที่คุณสามารถทำได้คือการสร้างเครื่องเสมือนสำหรับการแจกแจงแต่ละครั้ง VirtualBox สามารถใช้ทำสิ่งนี้ได้ ฉันมีเครื่องเสมือนประมาณ 8 เครื่องในกล่องสำหรับการทดสอบประเภทนี้

ฉันคิดว่าคุณไม่สามารถพูดคุยทั่วไปมากเกินไปในการปรับใช้แอปพลิเคชันเนื่องจากการกระจายแต่ละครั้งใช้วิธีการติดตั้งแพ็คเกจที่แตกต่างกัน ใช้ Debian และฟางdebrpm


3
เพียงหลีกเลี่ยงเส้นทางการเขียนโค้ดแบบธรรมดาความแตกต่างที่ใหญ่ที่สุดระหว่าง ALL distro's คือตัวจัดการแพ็กเกจและตำแหน่งที่พวกเขาวางสิ่งต่าง ๆ สมมติว่าพวกเขาจะวางทุกไฟล์และไดเรกทอรีในสถานที่ที่แตกต่างจากคุณ
xenoterracide

2

แค่ 2c ของฉัน แต่ฉันมีอาการปวดหัวน้อยกว่าด้วยแอปพลิเคชันที่มาพร้อมกับแพคเกจในที่เก็บอย่างเป็นทางการหรือที่รวบรวมจากแหล่งที่มา แอปพลิเคชันที่เผยแพร่เป็นไบนารีของบุคคลที่สามมักประสบปัญหาการอ้างอิงบางอย่าง ฉันมักจะต้องติดตามสิ่งเหล่านี้และแก้ไขด้วยตนเอง

ดังนั้นถ้าฉันจะปล่อยแอพ Linux ฉันจะทำงานเพื่อทำแพ็กเกจและนำไปไว้ในที่เก็บอย่างเป็นทางการ มิฉะนั้นฉันจะแจกจ่ายในรูปแบบแหล่งที่มาและให้ผู้ใช้รวบรวมสำหรับระบบของพวกเขา


2

หากคุณกำลังเขียนสำหรับ Linux ที่ไม่ได้ฝังตัวสิ่งสำคัญที่ควรทราบคือการกระจายที่แตกต่างกันจะมีคอลเลกชันรุ่นห้องสมุดที่แตกต่างกัน ดังนั้นคุณควรตั้งค่าพื้นฐานที่เก่าพอสมควร เมื่อ Debian อัปเดตช้า Debian เสถียร (หรือเก่ากว่าเมื่อมีอยู่ในไม่กี่เดือนหลังจากการเปิดตัว) มีแนวโน้มที่จะเป็นตัวเลือกที่สมเหตุสมผล

คุณจะต้องจัดแพ็คเกจแยกสำหรับการแจกจ่ายแต่ละครั้ง หากแอปพลิเคชันของคุณเป็นโอเพ่นซอร์สและประสบความสำเร็จคุณสามารถวางใจได้ว่ามีใครบางคนยกมันขึ้นมาและมีส่วนร่วมในบรรจุภัณฑ์ดังนั้นจึงไม่ใช่ทักษะที่สำคัญ นอกเหนือจากบรรจุภัณฑ์ความแตกต่างระหว่างการแจกแจงส่วนใหญ่ส่งผลกระทบต่อการบริหารระบบไม่ใช่การพัฒนาหรือการใช้งานประจำวัน

หากคุณกำลังจะแก้ไขเคอร์เนลคุณจะต้องทดสอบกับการกระจายมากขึ้นเนื่องจากการกระจายแต่ละครั้งมีแพตช์ของตนเองที่อาจทำให้เกิดความไม่ลงรอยกันและการกระจายแต่ละครั้งมีการตั้งค่า userland ที่อาจขึ้นอยู่กับชุดอินเตอร์เฟสเคอร์เนลต่างๆ สำหรับบางสิ่งที่ไม่ควรเป็นโมดูล)

โปรดทราบว่าสิ่งที่ฉันเขียนไว้ข้างต้นไม่เป็นความจริงหากคุณต้องการให้แอปพลิเคชันของคุณทำงานบนระบบฝังตัว (นี่หมายถึงทุกอย่างที่ไม่ใช่เซิร์ฟเวอร์เดสก์ท็อปหรือแล็ปท็อป) ซึ่งแม้ว่าพวกเขาจะเรียกใช้เคอร์เนล Linux เริ่มต้นด้วยGlibc ที่ถูกละทิ้งในความโปรดปรานของµClibc , dietlibc , Bionicเป็นต้น


1

ฉันพบว่าLinux Standards Baseมีประโยชน์โดยเฉพาะเมื่อใบสมัครของคุณมีบริการ (daemons) ดูเว็บไซต์เหล่านี้บางส่วน:

แต่ถ้าผมต้องถูก จำกัด ให้ใช้ทรัพยากรเพียงแค่มันอาจจะเป็นไฟล์ลำดับชั้นมาตรฐาน


0

Distros ส่วนใหญ่จะอยู่ในแพ็คเกจ / การกำหนดค่าเริ่มต้น ทุกรหัสที่ทำงานในสถาปัตยกรรมที่กำหนดควรรันบนทุก distro สำหรับสถาปัตยกรรมนั้น นอกจากนี้คุณยังสามารถเรียกใช้แอป GNOME ใน KDE และในทางกลับกันได้อย่างง่ายดายดังนั้นคุณสามารถเลือกแอปที่เหมาะกับคุณ / ฐานผู้ใช้และคุณทำเสร็จแล้ว!


0

สิ่งสำคัญคือการเลือกภาษา ภาษานี้จะทำงานอะไร หากคุณต้องการที่จะทำงานบนลินุกซ์ distro ใด ๆ คุณสามารถเขียนมันใน Python แอพไพ ธ อนใด ๆ ที่จะทำงานบน linux จะ (โดยทั่วไป) ทำงานบน linux distro ใด ๆ ที่มีการแก้ไข 0 ครั้ง

Python มีตัวประสาน GTK และ Qt ที่ดีมาก ฉันไม่เคยทำงานกับ gtk แต่ PyQt ยอดเยี่ยมมากในการทำงานกับ

ข้อดีของหลามก็คือคุณอาจไม่จำเป็นต้องคอมไพล์ส่วนขยายใด ๆ (มันขึ้นอยู่กับสิ่งที่คุณเขียนถึงแม้ว่าคุณจะต้องการมันก็ง่ายมาก ๆ ) และคุณยังมีแหล่งแจกจ่ายที่ดีเยี่ยมผ่าน pypi . การติดตั้งโปรแกรมไพ ธ อนจากนั้นง่ายกว่าที่เก็บแพคเกจ distro

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.