20128 – 2111
รายวชิ าพนื้ ฐานการใชง้ านระบบปฏิบัติการลีนุกซ์
หน่วยท่ี 5
วธิ ีใช้ apt-get บน linux
ผู้สอน นางสาวรัชฎาเนตร สรุ าไพ Ratchadanate Surumpai
แผนกวิชาเทคโนโลยีคอมพิวเตอร์ วิทยาลยั เทคนคิ สิงห์บรุ ี
apt-get คอื อะไร
ระบบปฏิบัติการ Linux ที่เป็น Debian based จะใช้ packaging system ท่ีชื่อว่า DPKG ซงึ่ packaging
system จะทาหน้าท่เี ป็นผ้ชู ่วย user ในการลงโปรแกรมหรือแอพพลิเคชั่นต่าง ๆ ถึงแม้ว่า DPKG จะช่วยเราทาให้
ไม่ต้องไปยงุ่ วุ่นวายกับการคอมไพล์ source code เองเวลาจะลงโปรแกรมซกั โปรแกรมนึง แต่ก็ยงั เข้าไปใช้งานได้
ยากอยูด่ ี ดงั นนั้ จงึ ไดม้ ี APT กาเนิดขน้ึ มา
APT จะทาหน้าทเี่ ป็นตัวกลางช่วยสือ่ สารระหว่างผู้ใช้กับ DPKG ผ่านทาง command-line ทาให้เราสามารถ
ส่งั การให้ DPKG ทางานตา่ ง ๆ ได้ เช่น การลา้ งแพค็ เกจ, ตดิ ตัง้ แพ็คเกจ, อพั เดทแพ็คเกจ
*แพ็คเกจ (package) ใน Linux ก็คือโปรแกรมต่างๆนั่นแหละ
20128 – 2111 รายวชิ าพื้นฐานการใชง้ านระบบปฏิบัตกิ ารลีนุกซR์ atchadanate Surumpai
apt-get คืออะไร
โดยหลกั ๆแลว้ APT นั้นจะมคี าสง่ั อยู่สองคาสง่ั ดว้ ยกัน นัน่ กค็ อื apt-get และ apt-cache
– apt-get จะทาหน้าทใี่ นการ install, upgrade และ clean packages
– apt-cache จะเอาไว้สาหรบั หา packages ใหม่ๆ
20128 – 2111 รายวชิ าพน้ื ฐานการใช้งานระบบปฏบิ ัตกิ ารลนี ุกซR์ atchadanate Surumpai
5.1 Updating package database
พิมพ์คาส่ังนีล้ งใน terminal
$sudo apt-get update
Output ทแ่ี สดงออกมาจะมีหลกั ๆอยู่ 3 แบบดว้ ยกนั คือ
hit : ไม่มีการเปล่ียนแปลงของเวอร์ช่ันแพ็คเกจ (ไม่มี
อัพเดท)
ign : แพ็คเกจถูกยกเลิก ซ่ึงมีหลายเหตุผลด้วยกันไม่ว่าจะ
เปน็ แพ็คแกจเป็นเวอร์ช่ันใหม่ล่าสุดจนไม่ต้องเช็ค หรือ มี error
ระหว่างรับไฟลแ์ พ็คเกจมา
get : มีเวอร์ชัน่ ใหมข่ องแพ็คเกจและจะดาวน์โหลดมาลงที่
เครือ่ งเรา
20128 – 2111 รายวชิ าพืน้ ฐานการใช้งานระบบปฏบิ ตั กิ ารลนี กุ ซR์ atchadanate Surumpai
5.1 Updating package database
20128 – 2111 รายวิชาพืน้ ฐานการใช้งานระบบปฏิบตั กิ ารลนี ุกซR์ atchadanate Surumpai
5.2 Upgrading installed packages
อัพเกรดแพ็คเกจท่ีลงอยูใ่ นเคร่อื งเราไดโ้ ดยการ
$sudo apt-get upgrade
มาถงึ จุดนี้ เชอื่ ได้เลยว่าหลายคนกาลงั งง กบั คาว่า
update และ upgrade
คาสัง่ apt-get update แมจ้ ะดเู หมือนทาหน้าที่อัพเดท
package แต่จริงๆ แลว้ ไม่ใช่ apt-get update เพียงแค่อัพเดทฐานข้อมลู ของแพ็คเกจให้เรา (package database)
เท่าน้ัน ยกตัวอย่างเช่น ถา้ คุณมแี พค็ เกจ ABC เวอร์ชนั่ 13.0 อยูใ่ นเครอ่ื ง การ update จะไปเชค็ วา่ มเี วอร์ชน่ั ใหม่ไหม
(เชน่ เวอร์ชน่ั 14.0) ถา้ มกี ็จะ mark ไวว้ า่ แพค็ เกจ ABC นี่มเี วอรช์ ั่นใหม่นะ แล้วดาวน์โหลดมาเกบ็ ไว้ แต่ยังไม่ได้อพั เกรด
ตวั แพค็ เพจใหเ้ ป็นเวอร์ช่ัน 14.0 ให้
20128 – 2111 รายวชิ าพ้ืนฐานการใช้งานระบบปฏบิ ัติการลีนุกซR์ atchadanate Surumpai
5.2 Upgrading installed packages
อพั เกรดแพค็ เกจทล่ี งอยู่ในเคร่ืองเราไดโ้ ดยการ
$sudo apt-get upgrade
ซึง่ หลงั จากท่ีเราอัพเดทฐานข้อมูลเรียบร้อยแลว้ เราจงึ จะใช้
คาสั่ง apt-get upgrade เพ่อื อัพเกรด แพค็ เกจท่ีมอี ยู่ในเคร่อื งเรา
ให้เปน็ เวอรช์ ั่นลา่ สดุ
ดงั น้นั โดยปกติแล้วเวลาท่เี ราจะอพั เดทแพ็คเกจใน Linux เราจึงใช้คาสั่งนี้
$sudo apt-get update && sudo apt-get upgrade -y
คืออพั เดทฐานข้อมูลแล้วอัพเกรดแพ็คเกจไปพร้อมกนั เลย (-y คอื ถา้ มกี าร confirm อะไรกต็ อ้ ง yes ไปใหห้ มดแบบ
อตั โนมตั ิ ทาให้เราสามารถกดอัพเดทท้งิ ไวไ้ ด้ ไม่ตอ้ งนง่ั รอกด yes)
20128 – 2111 รายวชิ าพน้ื ฐานการใช้งานระบบปฏิบตั ิการลนี ุกซR์ atchadanate Surumpai
5.2 Upgrading installed packages
20128 – 2111 รายวชิ าพื้นฐานการใชง้ านระบบปฏบิ ตั กิ ารลนี ุกซR์ atchadanate Surumpai
5.3 Installing new package with apt-get
เมื่อมีอัพเดท อัพเกรดแล้ว เราก็ต้องมีการลงแพ็คเกจ
เพม่ิ นอกเหนือจากทม่ี อี ยู่ในเคร่อื ง ทาได้โดย
$sudo apt-get install package-name
ตวั อยา่ งเช่น สมมติวา่ คุณจะลงโปรแกรม(แพ็คเกจ) VLC
โปรแกรมเลน่ วิดโี อฟรีสุดฮติ สงิ่ ท่ีต้องทาก็เพียงแคพ่ มิ พ์
$sudo apt-get install vlc
ลงไปใน terminal เทา่ นก้ี ็จะมี
โปรแกรม VLC ไว้ใช้แล้วหรือถา้ เราอยากจะลงทีหลายๆตัวพรอ้ มกัน
กส็ ามารถทาไดโ้ ดย
$sudo apt-get install package-name1 package-name2 package-name3
20128 – 2111 รายวชิ าพนื้ ฐานการใช้งานระบบปฏิบัตกิ ารลีนุกซR์ atchadanate Surumpai
5.3 Installing new package with apt-get
20128 – 2111 รายวิชาพน้ื ฐานการใชง้ านระบบปฏิบัตกิ ารลนี กุ ซR์ atchadanate Surumpai
5.4 Installing new package without upgrading
ในบางครั้ง เราอาจจะต้องการท่ีติดตั้งแพ็คเกจ แต่ไม่อยากจะอัพเกรด หากแพ็คเกจนั้นถูกติดต้ังอยู่ในเครื่องอยู่
แลว้
เราสามารถทาไดโ้ ดย
$sudo apt-get install package-name --no-upgrade
20128 – 2111 รายวิชาพนื้ ฐานการใช้งานระบบปฏบิ ัตกิ ารลีนุกซR์ atchadanate Surumpai
5.5 Removing installed packages
เมื่อมตี ิดต้งั ก็ตอ้ งมีถอนการติดตัง้ วิธีการทีเ่ ราจะถอน
การตดิ ตงั้ นั้นไมย่ ากเชน่ กนั
$sudo apt-get remove package-name
หรือ
$sudo apt-get purge package-name
ถา้ จาชอื่ package ไม่ได้ ลองกด tab หรือ tabtab (กดสองท)ี terminal จะลิสต์รายช่ือ package ที่ตรงกันออกมา
ให้
20128 – 2111 รายวิชาพ้ืนฐานการใชง้ านระบบปฏิบตั ิการลนี ุกซR์ atchadanate Surumpai
5.5 Removing installed packages
20128 – 2111 รายวิชาพนื้ ฐานการใช้งานระบบปฏบิ ัติการลนี กุ ซR์ atchadanate Surumpai
5.6 Finding package name and description
ในบางครั้ง เราก็ไม่แนใ่ จว่าแพ็คเกจท่ีเราต้องการนน้ั
มอี ยหู่ รือไม่ หรือตอ้ งการจะตรวจสอบวา่ มันเอาไว้ทาอะไร
เวอรช์ ่ันไหนแลว้
เราสามารถใช้ apt-cache มาช่วยได้
$sudo apt-cache search package-name
20128 – 2111 รายวชิ าพ้นื ฐานการใช้งานระบบปฏิบัตกิ ารลนี ุกซR์ atchadanate Surumpai
5.6 Finding package name and description
20128 – 2111 รายวชิ าพน้ื ฐานการใชง้ านระบบปฏบิ ตั ิการลนี ุกซR์ atchadanate Surumpai
5.7 Checking package information
ในการทีเ่ ราจะดรู ายละเอียดทงั้ หมดของแพ็คเกจ
เราสามารถทาไดโ้ ดย
$sudo apt-cache show package-name
20128 – 2111 รายวิชาพนื้ ฐานการใช้งานระบบปฏิบัตกิ ารลีนกุ ซR์ atchadanate Surumpai
5.7 Checking package information
20128 – 2111 รายวิชาพนื้ ฐานการใช้งานระบบปฏบิ ตั ิการลนี ุกซR์ atchadanate Surumpai
5.8 apt-get, apt-cache HELP!
ถ้าหากอยากจะรู้ว่า apt ทาอะไรไดอ้ กี บา้ ง
เข้าไปอ่านดว้ ยตวั เองได้เลยที่
$apt-get -h หรอื $man apt-get
และ
$apt-cache -h
หรือ
$man apt-cache
20128 – 2111 รายวชิ าพื้นฐานการใช้งานระบบปฏบิ ัติการลีนกุ ซR์ atchadanate Surumpai