Lite#10: Apt-Offline โปรแกรมสำหรับอัพเดท/ติดตั้งแพกเกจ deb ของเครื่องไม่มีเน็ต
Posted in:
Lite#10: Apt-Offline โปรแกรมสำหรับอัพเดท/ติดตั้งแพกเกจ deb ของเครื่องไม่มีเน็ต
เหมาะกับ: ผู้ใช้มือใหม่ ผู้ใช้ระดับกลาง นักพัฒนาซอฟท์แวร์
สิ่งที่ต้องรู้: รู้จักการติดตั้งแพกเกจผ่านทางระบบ APT (Synaptic, apt-get, aptitude)
คอมมานด์ไลน์: cd, cp, sudo
พอดีว่า ขณะที่กำลังจะสร้าง Club Lite ผมมีแนวความคิดหนึ่งอยู่ในใจมาตั้งนานแล้ว
ว่าปัญหาที่สำคัญอย่างหนึ่งของคอมพิวเตอร์ตามชนบท หรือชุมชนที่เข้าถึงอินเตอร์เน็ตลำบาก
จะทำอย่างไร เขาถึงสามารถอัพเดทระบบอูบุนตูของเขา แม้ว่าจะไม่มีเน็ตเลยก็ตาม
และผมก็เจอโปรแกรมหนึ่ง ที่สอดคล้องแนวความคิดนี้ที่สุด (ณ เวลานี้)
จะดีไหม หากมีโปรแกรมหนึ่ง ที่สามารถพกพาไปได้ด้วย และนำระบบ APT ย่อยๆ ของเราไป
เพื่อนำไปอัพเดท หรือดาวน์โหลดซอฟท์แวร์มาติดตั้ง และแถมอัพเดทระบบ APT กลับ
ให้เครื่องเรามีแหล่งซอฟท์แวร์ที่ทันสมัย โดยที่เครื่องเราไม่ต้องต่อเน็ต เพียงอาศัยเครื่องอื่น
ที่มีเน็ต (ดีๆ) และไม่มีปัญหา dependencies เพราะไม่อิงกับเครื่องที่เราใช้เลย
Apt-Offline โปรแกรมสำหรับอัพเดท/ติดตั้งแพกเกจ deb ของเครื่องไม่มีเน็ต
โปรแกรมอื่น ถ้าไม่ mirror แหล่งซอฟท์แวร์มาทั้งหมด
ก็สำรองเป็น CD ที่มีจุดบอดในเรื่อง dependencies ที่ใช้ได้เฉพาะเครื่องที่สำรองเท่านั้น
และไม่สามารถอัพเดทระบบได้ ได้เพียงสำรองโปรแกรมที่ติดตั้งจากอินเตอร์เน็ต
โค้ดต้นฉบับสำหรับนักพัฒนา: bzr branch lp:~apt-offline/apt-offline/dev
ผมเอามาทำหน้าตาใหม่โดย glade เพราะหน้าตาเดิม อั๊กลี่มากๆ :P
เลยทำให้ดูดีและเรียบง่าย แถมทำเป็นภาษาไทยให้เลย
หลักการทำงาน:
Apt-Offline จะสร้าง Profile ของเครื่องออฟไลน์ ซึ่งประกอบไปด้วยข้อมูลที่จำเป็นซึ่งได้มาจากเครื่อง
และสร้างเป็นไฟล์หนึ่ง เมื่อเราพกพาโปรแกรม Apt-Offline นี้ไปยังเครื่องที่มีอินเตอร์เน็ต
โปรแกรม Apt-Offline จะขอยืมระบบ Apt ในการสร้างฐานข้อมูลและดาวน์โหลดข้อมูลแพกเกจตาม Profile
จากนั้นผู้ใช้สามารถเลือกได้ว่าจะดาวน์โหลดโปรแกรมอะไรมาบ้าง หรือดาวน์โหลดแพกเกจที่สามารถอัพเดทมาได้
Apt-Offline จะจัดการว่าจะโหลดโปรแกรมที่เกี่ยวข้องให้อัตโนมัติ (resolved dependencies)
เมื่อผู้ใช้นำไฟล์กลับมาจากเครื่อง ระบบ Apt-Offline จะทำการเขียนข้อมูลที่อัพเดทแล้ว กลับเข้าสู่ระบบ APT
และทำการติดตั้งแพกเกจที่เราเลือกดาวน์โหลดมาเข้าเครื่อง เราจะได้ทั้งโปรแกรมใหม่และรายชื่อแพกเกจที่อัพเดทด้วย
วิธีใช้:
ก่อนใช้ต้องบอกก่อนว่าเป็นโปรแกรมที่อยู่ในการพัฒนา ซึ่งผู้พัฒนาชุดนี้อาจไม่ได้พัฒนาต่อแล้ว แต่ผมตั้งใจนำมาพัฒนาต่อ
เพื่อจะใส่ใน Club Lite ตอนนี้ผมยังไม่ได้ทำอะไรเกี่ยวกับโค้ด และเมื่อลองใช้ดู พบว่าใช้ได้ แม้ว่าต้องปรับปรุงอีกมาก
ก็ลองใช้ดูละกันครับ
สิ่งที่ต้องการ: USB drive ยิ่งใหญ่มากยิ่งดี
(เพราะโปรแกรมทำการสร้างฐานข้อมูลประมาณ 30Mb ไม่รวมกับ ไฟล์ที่จะดาวน์โหลดมาx2 เท่า เพราะตัวจริงอันหนึ่ง tar อันหนึ่ง)
และเครื่องคอมพ์พิวเตอร์อื่นที่มีระบบปฏิบัติการ Ubuntu, Mint, TLE (เจ๋งป่ะ ไม่ติดว่าต้องเป็นตัวไหนด้วย)
พื้นที่ที่ต้องการโดยประมาณ=30Mb+2x(ขนาดไฟล์ที่ดาวน์โหลดมา)
1.ดาวน์โหลดโปรแกรม Apt-Offline (17k) และแตกไฟล์ออก
http://www.tempf.com/getfile.php?filekey=1219674472.0472_Apt_Offline_0.1...
คลิ๊กขวาแล้ว เลือก Extract Here จากนั้นให้ย้ายโฟลเดอร์เข้าสู่ USB drive
2.เรียกใช้โปรแกรม
เมื่อเสีบ USB dirve กับเครื่องที่มีอินเตอร์เน็ตแล้ว ให้เรียกใช้โปรแกรม
โปรแกรมจะอยู่ใน Apt-Offline_0.1.01/src
ดับเบิ้ลคลิ๊กที่ไฟล์ apt-offline-gui แล้วเลือก Run

3.ทำตามขั้นตอนที่หนึ่ง สร้าง profile สำหรับเครื่อง offline ไฟล์ที่ได้จะมีนามสกุล .tar.bz2
4.ทำตามขั้นตอนที่สอง เปิดไฟล์ที่เซฟเป็น profile ไว้ และกด load
หมายเหตุ: ต้องรอหน่อย เพราะไม่มี status อะไรบอก
เมื่อโปรแกรมแสดงรายชื่อขึ้นมา ให้เราเลือกโปรแกรมที่ต้องการ

จากนั้นให้ตั้งชื่อในช่องด้านล่าง เพื่อจะจัดเก็บไฟล์ เมื่อตรวจทุกอย่างเรียบร้อยให้กดปุ่ม fetch
หมายเหตุ: ต้องรอเช่นกัน
(จากรูป เป็นรูปตัวอย่างผมใช้วิธีหลอกเครื่อง เพราะผมรอให้มันโหลดเสร็จไม่ได้ เน็ตผมมันช้ามากกกกกก)
5.นำไฟล์ที่ได้ (.tar) กลับติดตั้งเข้าสู่เครื่องออฟไลน์ โดยทำตามขั้นตอนที่ 3
แต่ขั้นตอนนี้ต้องใช้ terminal ในการเรียกโปรแกรมครับไม่งั้นมีปัญหา
cd /path/to/your/Apt-Offline/src/
ตรง /path/to/your/ แทนด้วยที่อยู่จริงของไดร์ฟ USB ที่เก็บโปรแกรม Apt-Offline
sudo python Apt-Offline-gui
.......
ก็ไม่ยุ่งยากอะไรครับ น่าจะลองใช้ดูกันได้
เพิ่มเติม: Tips สำหรับการใช้งาน
จากการใช้งานผมพบว่าถ้าเราสร้าง profile ใหม่ มันก็จะทำการโหลดข้อมูลจากเน็ตทุกครั้งซึ่งเสียเวลา
เราสามารถอัพเดท (ซึ่งยังไม่มีฟังก์ชั่นนี้ ผมจะทำเพิ่มภายหลัง) profile ที่มีอยู่เดิมแล้วได้โดย
นำไฟล์ข้อมูลมาแทนที่ข้อมูลบางตัว แต่ต้องทำหลังจากทำข้อ 5. ไปแล้วนะครับ
6.การอัพเดท
ลบไฟล์ที่สร้างเป็น profile เดิมก่อน ให้เหลือโฟลเดอร์ที่ชื่อเดียวกัน
เปิด terminal แล้วพิมพ์คำสั่ง
sudo cp /var/lib/dpkg/status /path/to/your/Apt-Offline/src/folderofyourprofile/
ตรง /path/to/your/ แทนด้วยที่อยู่จริงของไดร์ฟ USB ที่เก็บโปรแกรม Apt-Offline
ส่วน folderofyourprofile/ เป็นชื่อของโฟลเดอร์ profile ที่คุณตั้งชื่ออย่างนั้นไว้
จากนั้นให้สร้าง .tar.bz2 กลับ โดยการคลิ๊กขวาที่โฟลเดอร์ profile แล้วเลือก Create Archive แบบ tar.bz2
และลบ folder profile นั้นทิ้งไป เหลือแต่ไฟล์ tar.bz2 ที่จะนำไปใช้อัพเดทต่อๆ ไป
.....
ฟังดูเหนื่อยจัง แต่ผมว่าลองใช้ครั้งเดียวก็เป็นแล้วครับ และคงมีประโยชน์สำหรับหลายๆ ท่านขอรับ



ขอบคุณมาก
ขอบคุณมากเลยครับ มีประโยชน์มากๆเลยนะผมว่า ubuntu ไม่ต่อเน็ต สำหรับผมแล้วลงโปรแกรมยากมากเลย เพราะว่า เวลาไปโหลดโปรแกรมมาซึ่งเป็น .deb คิดว่าคงลงได้แต่พอลองแล้ว มันยังฟ้องว่าต่อเน็ตไม่ได้อีก ก็ผมไม่ได้ต่อเน็ตนิ ผมว่าเยี่ยมเลยนะ แต่ก็ติดอีกที่ คนที่ผมรู้จักไม่มีใครใช้ ubuntu , mint , TLE เลย ทำไงดี ถ้าเราทำ software จำลอง แบบประมาณว่าใช้ได้กับเครื่อง windows นี้ก็ดีสิเนาะ
ขอบคุณอีกครั้งครับมีประโยชน์มากเลย
มีประโยชน
มีประโยชน์มากเลยครับ เพราะว่าปัญหาผมคือตอนนี้ผมไม่ได้ต่อเน็ตแล้ว แต่ยังต้องใช้ ubuntu และหลายคนคงพบปัญหาเดียวกับผม แต่อีกปัญหาหนึ่งก็คือ คนที่ผมรู้จักไม่มีใครใช้ ubuntu , mint , tle นี้สิ
Debian
ไม่แน่ใจว่าจะใช้ใน Linux สาย Debian ได้ด้วยหรือเปล่า?
เพราะใช้ระบบ APT แบบเหมือนกัน และโปรแกรมนี้ไม่สนใจโครงสร้าง
เพราะทำงานระดับ APT ดังนั้น ในทางทฤษฎี อาจใช้ด้วยกันได้
ลองหาคนที่ใช้ Linux สาย Ubuntu (หรือแม้แต่ Kubuntu)
หรือสาย Debian เช่น Xandros นี่ก็ Debian ครับ
ยังไม่ได้ลองกับตัวอื่น แต่วิเคราะห์ตามเท่าที่ดูการทำงานครับ
ส่วนการทำให้โปรแกรมใช้บน Window$ ได้ หากทำให้โปรแกรมนี้ไม่ต้องอิงกะลีนุกซ์
สายพันธุ์ใดได้ การที่ทำให้ใช้บน Window$ ก็คงไม่น่าจะยากอะไร
ผมคิดว่าน่าจะเป็นไปได้ครับ
พักนี้ฟิตปึ๋งปั๊ง
พักนี้ฟิตปึ๋งปั๊งเลยนะท่านหมี เก่งนะครับก้าวหน้าไปอีกขั้น ตอนนี้ผันตัวเป็นนักพัฒนาไปแล้ว ^^
ผมนั่งอ่านบทความเกี่ยวกับกลไกการทำงานหลายเที่ยว(ยังไม่เข้าใจเท่าไหร่)แล้วถ้าเปรียบเทียบกับ APTonCD โปรเจคนี้เหนือกว่าด้านไหนครับ ...
http://wiki.opentle.org/APTonCD
APT on CD
aptoncd สำรอง .deb ที่ดาวน์โหลดมาทำเป็น .iso archive ใช้สำรองแพกเกจ
เพื่อกลับมาใช้ใหม่ เครื่องนั้นต้องติดต่ออินเตอร์เน็ต ถ้าไม่ต่อเน็ตก็ทำอะไรไม่ได้
และถ้าไม่ต่อเน็ต ก็ไม่สามารถอัพเดทฐานข้อมูลที่ APT ใช้ได้ด้วย และเรื่องสำคัญ
ก็คงไม่พ้นเรื่อง dependencies ที่เครื่องหนึ่งมีไม่เหมือนอีกเครื่องหนึ่ง
และใช้แทนกันไม่ได้เสียด้วย
แต่อันนี้คือ ยกฐานข้อมูล APT ย่อยๆ ของเรา ไปใช้กับเครื่องที่มีอินเตอร์เน็ต
และนำการอัพเดทฐานข้อมูล APT และแพกเกจที่ดาวน์โหลดมา กลับเข้าเครืี่่่องเรา
วิธีอัพเดททั่วไป
เครื่องออนไลน์-->อัพเดท APT/ติดตั้งโปรแกรม
วิธี aptoncd
เครื่องออนไลน์-->อัพเดท APT/ติดตั้งโปรแกรม-->สำรอง .deb-->เอากลับมาใช้ ไม่ต้องต่อเน็ต
วิธี apt-offline
เครื่องออฟไลน์-->สื่อ Removable Media-->เครื่องออนไลน์ --|
เครื่องออฟไลน์<--อัพเดท APT/ดาวน์โหลดแพกเกจ<----------|
ประมาณนี้ครับ
คือ ถ้าอยู่ในที่ไม่มีเน็ต ก็พกไอ้นี่ไปยังบ้านเพื่อน/หน่วยงานที่มีเน็ต แล้วโหลดโปรแกรมกลับบ้าน แล้วมาติดตั้ง ระบบก็อัพเดทด้วย ไม่มีปัญหาเรื่อง dependencies จากเครื่อง
ที่เรายืมใช้ด้วย
Re: APT on CD
มาทำความเข้ากันก่อน APTonCD มีความสามารถคัดลอก .deb และสร้าง meta-package(Default Option) สรุปสร้าง repositories ส่วนตัวเป็นแฟ้ม .iso และนำไป restore ที่เครื่องอื่นๆ
ส่วนงานลักษณะ offline ก็ทำงานได้ครับ (ขอให้มี deb ในเครื่องต้นสำเนาเป็นโอเค) ผมทดสอบดูเมื่อกี้ Disable เน็ตเวิร์ค แล้วใช้เครื่องตัวเองสมมติการทำงาน ทั้งสร้างและโหลด iso สามารถทำงานได้โดยไม่ต้องใช้เน็ต ...
สำหรับแฟ้ม .iso ก็ไม่จำเป็นต้องเบิร์นเป็นแผ่นซีดี คัดลอกใส่ USB Drive เวลาใช้งานเรียกโปรแกรม Gmount-iso และกำหนดจุดเมาท์ที่ /media/cdrom เพื่อสร้างซีดีเทียม จะได้ไม่ต้องเปลืองแผ่น ...
APT on CD
aptoncd จะ resolve dependencies ของเครื่องต้นฉบับ
ซึ่งอาจ required dependencies ต่างจากเครื่องที่เราจะนำไปใช้
ถ้าเป็นเครื่องลูกข่ายที่ต้องการโปรแกรมเหมือนๆ กัน และอัพเดทลักษณะเดียวกัน
ก็ใช้ apt on cd ได้ แต่ถ้าเป็นเครื่องอื่น ที่ลงโปรแกรม 108 นั้น
การต้องการ dependencies ต่างกันมากเลยครับ
ยกตัวอย่างง่ายๆ ถ้าผมใช้ Ubuntu ติดตั้งใหม่ใสกิ้ง และต้องการแพกเกจบางตัว
เช่น amarok มันอาจ resolved dependencies มาเกือบร้อยเมก เพราะเป็น
ของ kde
ทีนี้หากผมทำ apt on cd จากเครื่องคนอื่น ที่มี dependencies หลายตัวอยู่แล้ว
อันเนื่องมาจากการติดตั้งโปรแกรมอื่นอยู่ก่อนหน้า ผมอาจ apt-get เอา amarok
มาประมาณ 10 Mb
หากใช้เครื่องนั้นทำ apt on cd แล้วเอาแพกเกจข้างต้น กลับมาบ้านมาติดตั้ง
เครื่องผมจะฟ้องว่า ไม่มี dependencies ต่างๆ (dependencies hell)
และไม่อาจติดตั้งแพกเกจได้
อีกประการ หากเลือกฟังก์ชั่น Meta Packages ของ apt on cd
จะพบปัญหาตอนถอดถอนโปรแกรม มันจะ purge เอาตัวอื่นออกด้วยครับ
ผมเคยเขียนปัญหาเรื่อง dependencies hell จากการใช้ระบบ APT (เครื่องอื่น)
http://www.ubuntuclub.com/node/318
Re: APT on CD
พอเข้าใจประเด็นที่นำเสนอมา คือเป็นการนำฐานข้อมูล Apt ของที่เครื่องที่จะนำไปติดตั้ง มาจำลองบนเครื่องที่ใช้ดาวน์โหลดแพกเกจ เพื่อที่จะได้แพกเกจพร้อมแพกเกจพัวพันครบถ้วน ...
อย่างที่บอกตอนแรกว่าไม่เข้าใจ ก็เลยยก APTonCD มาเปรียบเทียบถึงความแตกต่างของแพกเกจที่คุณหมีทำขึ้นมา ตอนหัวค่ำว่าจะถามเรื่องความแตกต่าง dependency ของแต่ละเครื่องอยู่เหมือนกัน แต่ข่าวการเมืองมันเย้ายวนกว่า ...
เก่งนะหาวิธีคิดกันได้ ร้ายจริงๆ ...
ดาวน์โหลดโปรแกรมไม่ได้ครับ
ลิ้งมันเสียแล้ว เลยทดลองไม่ได้เลยครับ
Linkเสียครับ
โหลดไม่ได้แล้วเหรอครับ
Post new comment