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

การจัดการคลังซอฟต์แวร์

เพิ่มคลังซอฟต์แวร์ของบุคคลที่สาม ทำความเข้าใจแหล่งที่มาของแพ็กเกจ และแก้ไขข้อขัดแย้งของข้อพึ่งพาสำหรับการติดตั้งซอฟต์แวร์ที่ซับซ้อน

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

คลังซอฟต์แวร์คืออะไร

เมื่อคุณติดตั้งซอฟต์แวร์บน Linux ระบบจะไม่ดาวน์โหลดจากแหล่งใดก็ได้แบบสุ่ม แต่จะใช้คลังซอฟต์แวร์

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

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

แหล่งทางการกับแหล่งจากบุคคลที่สาม

โดยทั่วไป คลังซอฟต์แวร์แบ่งออกเป็นสองประเภท

  • คลังซอฟต์แวร์ทางการ: ดูแลโดยดิสทริบิวชัน Linux ของคุณ (เช่น Ubuntu, CentOS) มีซอฟต์แวร์ที่เสถียรและผ่านการทดสอบอย่างดี เครื่องมือทั่วไปส่วนใหญ่มาจากแหล่งนี้
  • คลังซอฟต์แวร์จากบุคคลที่สาม: ดูแลโดยนักพัฒนาหรือองค์กรต่าง ๆ ไม่ใช่ดิสทริบิวชันของคุณ อาจมีซอฟต์แวร์เวอร์ชันใหม่กว่า เครื่องมือเฉพาะทาง หรือรุ่นเบตา

แม้คลังจากบุคคลที่สามจะมีประโยชน์ แต่ควรระมัดระวังเสมอ เพิ่มเฉพาะคลังจากแหล่งที่เชื่อถือได้เพื่อหลีกเลี่ยงความเสี่ยงด้านความปลอดภัย

การเพิ่มคลังด้วย APT (Debian/Ubuntu)

ในระบบที่พัฒนาบน Debian และ Ubuntu เครื่องมือ Advanced Package Tool (APT) จะจัดการซอฟต์แวร์ รายการคลังจะอยู่ในไฟล์ภายใต้ /etc/apt/ โดยหลักคือ /etc/apt/sources.list และไฟล์ใน /etc/apt/sources.list.d/

สำหรับคลังจากบุคคลที่สาม มักใช้คำสั่ง add-apt-repository โดยเฉพาะกับ Personal Package Archives (PPA)

หลังจากเพิ่มคลังใหม่ ให้เรียกใช้ sudo apt update เสมอ เพื่อดึงข้อมูลแพ็กเกจล่าสุดจากคลังนั้น

คลัง APT: ตัวอย่างการเพิ่ม PPA

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

# Add the Neovim stable PPA
sudo add-apt-repository -y ppa:neovim-ppa/stable

# Update your package list to include the new repo's packages
sudo apt update

echo "Neovim PPA added and package lists updated!"

การเพิ่มคลังด้วย YUM/DNF (RHEL/CentOS)

ในระบบ Red Hat, CentOS หรือ Fedora จะใช้ yum (หรือรุ่นต่อมาอย่าง dnf) จัดการแพ็กเกจ ระบบเหล่านี้ใช้ไฟล์ .repo เพื่อกำหนดคลัง

โดยทั่วไปไฟล์เหล่านี้อยู่ในไดเรกทอรี /etc/yum.repos.d/ ไฟล์ .repo แต่ละไฟล์กำหนดคลังอย่างน้อยหนึ่งแห่ง พร้อมรายละเอียด เช่น ชื่อ URL พื้นฐาน และข้อมูลคีย์ GPG

หลังจากสร้างหรือแก้ไขไฟล์ .repo คุณอาจต้องเรียกใช้ sudo dnf clean all (หรือ yum clean all) แล้วจึงเรียกใช้ sudo dnf update (หรือ yum update) เพื่อรีเฟรชข้อมูลเมตาของแพ็กเกจ

คลัง YUM/DNF: การสร้างไฟล์ .repo

นี่คือตัวอย่างการสร้างไฟล์ .repo สำหรับ Google Chrome ซึ่งไม่มีอยู่ในคลังทางการของ RHEL/CentOS เราใช้ tee เพื่อเขียนไฟล์ด้วยสิทธิ์ผู้ดูแลระบบ

# Create a .repo file for Google Chrome
echo "[google-chrome]" | sudo tee /etc/yum.repos.d/google-chrome.repo
echo "name=Google Chrome" | sudo tee -a /etc/yum.repos.d/google-chrome.repo
echo "baseurl=http://dl.google.com/linux/chrome/rpm/stable/x86_64" | sudo tee -a /etc/yum.repos.d/google-chrome.repo
echo "enabled=1" | sudo tee -a /etc/yum.repos.d/google-chrome.repo
echo "gpgcheck=1" | sudo tee -a /etc/yum.repos.d/google-chrome.repo
echo "gpgkey=https://dl.google.com/linux/linux_signing_key.pub" | sudo tee -a /etc/yum.repos.d/google-chrome.repo

echo "Google Chrome repository file created!"

การตรวจสอบแพ็กเกจด้วยคีย์ GPG

เมื่อเพิ่มคลังจากบุคคลที่สาม สิ่งสำคัญคือต้องนำเข้าคีย์ GPG (GNU Privacy Guard) ของคลังนั้นด้วย คีย์เหล่านี้ใช้ตรวจสอบความถูกต้องของแพ็กเกจด้วยการเข้ารหัส

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

  • APT: โดยมักจัดการคีย์ด้วย add-apt-repository หรือนำเข้าด้วยตนเองโดยใช้ apt-key add
  • YUM/DNF: ระบุคีย์ในไฟล์ .repo ด้วย gpgkey= และนำเข้าด้วย rpm --import
wget -qO - https://example.com/KEY.gpg | sudo apt-key add -
# Or for YUM/DNF:
sudo rpm --import https://example.com/KEY.gpg

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

บางครั้งคลังต่าง ๆ อาจมีแพ็กเกจเดียวกันคนละเวอร์ชัน หรือมีแพ็กเกจที่มีส่วนที่ต้องพึ่งพาขัดแย้งกัน ซึ่งอาจทำให้เกิดข้อขัดแย้งของส่วนที่ต้องพึ่งพา

โดยทั่วไป ตัวจัดการแพ็กเกจจะแจ้งเตือนเกี่ยวกับข้อขัดแย้งเหล่านี้ และอาจเสนอวิธีแก้ไข เครื่องมือทั่วไปสำหรับวินิจฉัยปัญหา ได้แก่

  • APT: apt policy <package-name> แสดงเวอร์ชันที่พร้อมใช้งานจากคลังต่าง ๆ
  • YUM/DNF: dnf deplist <package-name> แสดงส่วนที่ต้องพึ่งพาและแพ็กเกจที่จัดหาให้

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

apt policy firefox
# Or for YUM/DNF:
dnf deplist firefox

การจัดลำดับความสำคัญของคลัง

หากมีหลายคลังที่ให้บริการแพ็กเกจเดียวกัน คุณสามารถกำหนดให้ตัวจัดการแพ็กเกจเลือกคลังใดคลังหนึ่งก่อน การดำเนินการนี้เรียกว่าการจัดลำดับความสำคัญของคลัง

  • APT: ใช้ 'pinning' โดยสร้างไฟล์ใน /etc/apt/preferences.d/ แล้วกำหนด 'Pin-Priority' ให้แพ็กเกจจากแหล่งที่ระบุ ตัวเลขลำดับความสำคัญที่สูงกว่า (มากกว่า 500) หมายถึงให้เลือกก่อน
  • YUM/DNF: yum-plugin-priorities (หรือความสามารถในตัวของ DNF) ช่วยให้คุณกำหนดค่า priority= ในไฟล์ .repo (ตัวเลขที่ต่ำกว่าหมายถึงลำดับความสำคัญสูงกว่า)

วิธีนี้ช่วยให้คุณใช้คลังที่เสถียรและคลังที่ใหม่กว่าได้อย่างปลอดภัย

# Example for APT pinning:
# File: /etc/apt/preferences.d/my-app
Package: my-app
Pin: origin "example.com"
Pin-Priority: 900

ตรวจสอบการจัดการคลัง

มาทดสอบความเข้าใจของคุณเกี่ยวกับการจัดการคลังซอฟต์แวร์กันครับ

สรุป: เชี่ยวชาญการจัดการคลัง

ยินดีด้วยครับ คุณได้เรียนรู้วิธีจัดการคลังซอฟต์แวร์ ซึ่งเป็นทักษะสำคัญสำหรับผู้ดูแลระบบ Linux แล้ว

  • ตอนนี้คุณเข้าใจความแตกต่างระหว่างคลังทางการกับคลังจากบุคคลที่สามแล้ว
  • คุณสามารถเพิ่มคลังโดยใช้ add-apt-repository (Debian/Ubuntu) และสร้างไฟล์ .repo (RHEL/CentOS) ได้
  • คุณทราบถึงความสำคัญของคีย์ GPG สำหรับตรวจสอบความถูกต้องของแพ็กเกจแล้ว
  • คุณได้รู้จักการจัดการข้อขัดแย้งของส่วนที่ต้องพึ่งพาและการจัดลำดับความสำคัญของคลัง

โปรดจำไว้เสมอว่าต้องให้ความสำคัญกับความปลอดภัย และเพิ่มเฉพาะคลังจากแหล่งที่เชื่อถือได้เท่านั้น

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

บทเรียน “การจัดการคลังซอฟต์แวร์” ฟรีหรือไม่

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

คุณจะเรียนรู้อะไรในบทเรียน “การจัดการคลังซอฟต์แวร์”

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

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

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

บทเรียน “การจัดการคลังซอฟต์แวร์” ใช้เวลานานแค่ไหน

บทเรียน 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