cloning package in ubuntu
Posted in:
สวัสดีครับพี่น้องสาวก ubuntu ทุกท่าน วันนี้ rooney มี trick เล็กๆน้อยๆเกี่ยวกับการติดตั้งโปรแกรมแบบเร่งด่วนมาฝากครับ เรื่องมีอยู่ว่า
หัวหน้า: เฮ้ what zapp!
rooney: เอ่อ... ครับ
หัวหน้า: นี่ๆ ช่วงบ่ายนี้ช่วย setup เครื่อง server ให้หน่อยนะเอาให้เหมือนเครื่อง server ที่วางที่ชั้น 11 เลยนะ เดี๋ยวพรุ่งนี้ต้องเอาไปตั้งที่สาขา
rooney: ชิวๆ อยากได้จัดให้เลยครับท่าน
อีก 10 นาทีต่อมา
rooney: อ้าว เฮ้ย! งานเข้า ไอ้เจ้า server ที่ว่ามันเป็น all in one server นี่หว่า เครื่องเดียวเป็นทั้ง web , mail , ftp , file server , vpn , etc แล้วนี่ต้องลง app กันกี่ตัวฟะเนี่ย แล้วต้อง apt-get อะไรมามั่งล่ะตู ลืมไปแล้วด้วยเด่ะ (T _ T ")?
อีก 15 นาทีถัดมา
rooney: อืม..........
rooney: อา..........
rooney: โอว.........
rooney: เอ..... นึกออกแล้ว \(^ _ ^)/
ขั้นตอนการแก้ปัญหา
ขั้น 1: ติดตั้ง ubuntu ที่เครื่อง server เครื่องใหม่ให้เรียบร้อย
ขั้น 2: ลอง list ดู package ในเครื่อง server เครื่องเก่าดู
#dpkg -l (เพื่อนๆลองทำตามดูนะครับ)
ขั้น 2: ทีนี้ลองกรอง package ที่มีอยู่ในเครื่องออกมาเป็น file
#dpkg -l | awk '{print $2}' > packages.list
ตัวอย่างไฟล์:
Status=Not/Installed/Config-f/Unpacked/Failed-cfg/Half-inst/t-aWait/T-pend
Err?=(none)/Hold/Reinst-required/X=both-problems
Name
acl
acpi
acpi-support
acpid
adblock-plus
adduser
alacarte
alsa-base
alsa-utils
anacron
apache2-utils
apache2.2-common
apmd
.
.
.
.
xsltproc
xterm
xtrans-dev
xulrunner-1.9
xulrunner-1.9-gnome-support
xutils
xutils-dev
yakuake
yelp
zenity
zip
zlib1g
zlib1g-dev
จะเห็นว่ามีส่วนที่ไม่ได้เป็นชื่อ package ปนอยู่ในไฟล์
Status=Not/Installed/Config-f/Unpacked/Failed-cfg/Half-inst/t-aWait/T-pend
Err?=(none)/Hold/Reinst-required/X=both-problems
Name
ให้ทำการลบส่วนนี้ทิ้งไป
3. copy ไฟล์ packages.list ไปไว้ที่เครื่อง server เครื่องใหม่ (สมมติว่าวางไว้ที่ /tmp)
4. ติดตั้งโปรแกรม
#apt-get -y install --force-yes $(cat /tmp/packages.list)
5. ที่เหลือก็คือลอกไฟล์ configure จากเครื่องเดิมมาเครื่องใหม่
หมายเหตุ: วิธีข้างต้นอาจจะดูถึกเถื่อนไปนิด เพราะเล่นไล่ติดตั้งซะทุก app ถ้าจะให้ดี software ตัวไหนไม่ใช้แน่ๆก็ตัดทิ้งไปจาก packages.list ซะครับ จริงๆถ้าเราเป็นคน set server เครื่องเก่าเองกะมือ แค่ขั้นตอน list ชื่อ package ออกมาก็น่าจะพอทำให้จำได้บ้างแล้วละว่าต้องลงอะไรบ้าง ก็ให้ทำการคัดชื่อ package ออกมาให้เหลือเฉพาะที่น่าจะต้องติดตั้ง แล้วค่อย apt-get -y install --force-yes ....... ทีเดียวจบ(อย่างเร็ว)
ปล: ใช้เป็น shell script รันเพื่อทำการติดตั้งก็ได้นะครับ ตัวอย่าง script ดูตามข้างล่างครับ
#!/bin/bash
for pkg in $(cat /tmp/packages.list); do
apt-get -y install $pkg
done
สุดท้าย อยากจะบอกว่าเหตุการณ์ดังกล่าวเป็นเรื่องสมมตินะครับ ไม่มีไรมาก เค้าแค่อยากสอน command line อ่ะตัวเอง แง็ว ๆ ๆ ๆ (ส่วน server น่ะ เอา clonezilla clone เอาก็ได้นะครับง่ายดี)


อันนี้ก็ใช้ได้ครับ
นานๆ เทพรูนีย์สุดหล่อ จะลงมาสักที สงสัยจะมาผ่านม้าทรงในเทศกาลกินเจ :P (แซว)
อันนี้ก็ใช้ได้ขอรับกระผม สำหรับคนที่อยาก clone แพกเกจและติดตั้ง
http://forum.ubuntuclub.com/index.php/topic,4778.0.html
ป่อยๆๆ
บะ บะ บร้า ตัวเองก็
เด๋วก็ตอบแทนด้วยร่างกายเลย O_o
เอ่อ นี่ก็เหตุการณ์สมมุตินะครับ - -"
แล้วใน script
แล้วใน script ไม่ต้องมี --force-yes เหรอครับ
ขอบคุณครับ
เดี๋ยวจะลองทำดูบ้าง ^ ^
อย่าทำ dns
อย่าทำ dns server บน ubuntu
Post new comment