0Pricing
Linux Server Deployment & SSH Mastery · บทเรียน

การสร้างจากซอร์สและการใช้ Snap/Flatpak

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

การสร้างจากซอร์สและการใช้ Snap/Flatpak เป็นบทเรียน Linux Server Deployment & SSH Mastery ฟรีบน CoddyKit นี่คือบทเรียนที่ 4 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน Linux Server Deployment & SSH Mastery และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส Linux Server Deployment & SSH Mastery มีบทเรียนทั้งหมด 4 บทเรียน

เมื่อเครื่องมือจัดการแพ็กเกจไม่เพียงพอ

APT และ YUM ครอบคลุมความต้องการส่วนใหญ่ แต่บางครั้งเครื่องมืออาจไม่มีแพ็กเกจ หรือแพ็กเกจในคลังเก่าเกินไป หรือคุณอาจต้องการรุ่นที่ระบุ ในกรณีเหล่านี้ คุณมีสองทางเลือก:

  • คอมไพล์ซอฟต์แวร์จากซอร์ส
  • ใช้รูปแบบแพ็กเกจสากล เช่น Snap หรือ Flatpak

บทเรียนนี้ครอบคลุมทั้งสองวิธี

เตรียมเครื่องมือสร้างให้พร้อม

การคอมไพล์ต้องใช้ชุดเครื่องมือ ได้แก่ คอมไพเลอร์ make และไลบรารีสำหรับการพัฒนา บน Debian/Ubuntu เมตาแพ็กเกจ build-essential จะติดตั้งองค์ประกอบพื้นฐานให้

sudo apt install build-essential
# RHEL/Fedora:
sudo dnf groupinstall 'Development Tools'

รับซอร์สโค้ด

โดยทั่วไปซอร์สจะมาในรูปไฟล์ tarball ที่บีบอัด หรือที่เก็บ git ให้ดาวน์โหลดและแตกไฟล์ จากนั้นเข้าไปยังไดเรกทอรี

wget https://example.com/tool-1.2.tar.gz
tar -xzf tool-1.2.tar.gz
cd tool-1.2

วงจร configure / make / install

กระบวนการสร้างแบบ GNU ดั้งเดิมมีสามขั้นตอน:

  • ./configure — ตรวจสอบระบบและเตรียมการสร้าง
  • make — คอมไพล์โค้ด
  • sudo make install — คัดลอกไบนารีไปยังตำแหน่งที่เหมาะสม

รูปแบบนี้มีมานานหลายทศวรรษและยังคงใช้กันทั่วไป

./configure
make
sudo make install

เลือกคำนำหน้าตำแหน่งติดตั้ง

โดยค่าเริ่มต้น ซอฟต์แวร์จะติดตั้งลงใน /usr/local คุณสามารถเปลี่ยนค่านี้ด้วย --prefix เพื่อแยกการติดตั้งออกจากส่วนอื่น ทำให้ล้างออกได้ง่าย

การติดตั้งลงในไดเรกทอรีบ้านช่วยให้ไม่ต้องใช้สิทธิ์ root เลย

./configure --prefix=/opt/tool
make
sudo make install

จัดการส่วนที่ต้องพึ่งพาซึ่งขาดหาย

หาก ./configure หยุดทำงานพร้อมแจ้งว่าไลบรารีขาดหาย ให้ติดตั้งแพ็กเกจ -dev ที่ตรงกัน แพ็กเกจสำหรับการพัฒนาจะมีไฟล์ส่วนหัวที่ซอร์สโค้ดต้องใช้เพื่อคอมไพล์ร่วมกับไลบรารี

sudo apt install libssl-dev zlib1g-dev
./configure

ถอนการติดตั้งโปรแกรมที่สร้างจากซอร์ส

ข้อเสียของการติดตั้งจากซอร์สคือไม่มีการถอนการติดตั้งอัตโนมัติ หากโครงการรองรับ ให้เรียกใช้ make uninstall จากไดเรกทอรีสร้าง มิฉะนั้นการใช้ --prefix เพื่อแยกการติดตั้งจะช่วยให้คุณลบทั้งโฟลเดอร์ได้

sudo make uninstall
# or, if you used --prefix=/opt/tool:
sudo rm -rf /opt/tool

แพ็กเกจสากล: Snap

แพ็กเกจ Snap รวมแอปไว้กับส่วนที่ต้องพึ่งพา จึงทำงานได้บนดิสทริบิวชันใด ๆ ที่มี snapd แพ็กเกจจะอัปเดตอัตโนมัติและทำงานในพื้นที่จำกัด

sudo snap install htop
snap list
sudo snap remove htop

แพ็กเกจสากล: Flatpak

Flatpak เป็นรูปแบบสากลอีกแบบหนึ่ง ซึ่งได้รับความนิยมสำหรับแอปเดสก์ท็อปและเผยแพร่ผ่านแหล่งแพ็กเกจ เช่น Flathub เพิ่มแหล่งแพ็กเกจหนึ่งครั้ง แล้วติดตั้งด้วยรหัสแอปพลิเคชัน

flatpak remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo
flatpak install flathub org.gimp.GIMP
flatpak run org.gimp.GIMP

เลือกวิธีที่เหมาะสม

เลือกแนวทางที่เหมาะกับงาน:

  • APT/YUM — ค่าเริ่มต้น ผสานรวมได้ดีที่สุด และอัปเดตอัตโนมัติ
  • Snap/Flatpak — รุ่นล่าสุด ใช้ได้ข้ามดิสทริบิวชัน และทำงานในพื้นที่จำกัด
  • ซอร์ส — ทางเลือกสุดท้ายสำหรับซอฟต์แวร์ที่ไม่มีแพ็กเกจหรือการสร้างแบบกำหนดเอง

ควรเลือกใช้แพ็กเกจก่อน และสร้างจากซอร์สเฉพาะเมื่อจำเป็น

แนวทางปฏิบัติที่ดี

ติดตั้งอย่างปลอดภัยนอกเครื่องมือจัดการแพ็กเกจ:

  • ติดตั้งส่วนที่ต้องพึ่งพาสำหรับการสร้างให้พร้อมก่อนกำหนดค่าเสมอ
  • ใช้ --prefix ที่แยกชัดเจน เพื่อให้ลบการติดตั้งจากซอร์สได้ภายหลัง
  • ตรวจสอบค่าเช็กซัมหรือลายเซ็นของไฟล์ที่ดาวน์โหลด
  • เลือกใช้ Snap/Flatpak แทนซอร์สเมื่อมีแพ็กเกจที่ได้รับการดูแลอยู่

ตรวจสอบอย่างรวดเร็ว

ทดสอบความรู้เกี่ยวกับการติดตั้ง

ทบทวน

ขณะนี้คุณสามารถติดตั้งซอฟต์แวร์นอกเหนือจากคลังแพ็กเกจมาตรฐานได้แล้ว:

  • จากซอร์สโค้ด: ./configure → make → make install โดยใช้ --prefix เพื่อแยกการติดตั้ง
  • Snap: ใช้ snap install สำหรับแอปที่มีส่วนประกอบครบในตัวและอัปเดตอัตโนมัติ
  • Flatpak: รีโมตของ Flathub และรหัสแอป

เลือกใช้วิธีเหล่านี้เมื่อ APT/YUM ไม่สามารถจัดหาสิ่งที่คุณต้องการได้เท่านั้น

คำถามที่พบบ่อย

บทเรียน “การสร้างจากซอร์สและการใช้ Snap/Flatpak” ฟรีหรือไม่

ใช่ — ข้อความเต็มของ “การสร้างจากซอร์สและการใช้ Snap/Flatpak” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส Linux Server Deployment & SSH Mastery ให้อัปเกรดเป็น CoddyKit PRO คอร์ส Linux Server Deployment & SSH Mastery มีบทเรียนทั้งหมด 4 บทเรียน

คุณจะเรียนรู้อะไรในบทเรียน “การสร้างจากซอร์สและการใช้ Snap/Flatpak”

ก้าวข้ามตัวจัดการแพ็กเกจของระบบด้วยการคอมไพล์ซอฟต์แวร์จากซอร์สเมื่อไม่มีแพ็กเกจให้ใช้ และใช้รูปแบบแพ็กเกจสากลอย่าง Snap กับ Flatpak เพื่อติดตั้งแอปสมัยใหม่โดยไม่ขึ้นกับคลังของดิสโทร คุณปฏิบัติ Linux Server Deployment & SSH Mastery ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน

คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน Linux Server Deployment & SSH Mastery หรือไม่

ไม่จำเป็นต้องมีประสบการณ์มาก่อน Linux Server Deployment & SSH Mastery บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 4 จากทั้งหมด 4 บทเรียน

บทเรียน “การสร้างจากซอร์สและการใช้ Snap/Flatpak” ใช้เวลานานแค่ไหน

บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย

ฉันเขียนและรันโค้ดในบทเรียน Linux Server Deployment & SSH Mastery นี้ได้ไหม

ได้ บทเรียน Linux Server Deployment & SSH Mastery ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ

บทเรียนทั้งหมดในหลักสูตรนี้

  1. ตัวจัดการแพ็กเกจ APT และ YUM
  2. การติดตั้งและอัปเดตซอฟต์แวร์
  3. การจัดการคลังซอฟต์แวร์
  4. การสร้างจากซอร์สและการใช้ Snap/Flatpak
← กลับไปที่ Linux Server Deployment & SSH Mastery