Theppitak's blog

My personal blog.

11 มกราคม 2549

เก็บเด็กกำพร้า

upgrade debian นานๆ เข้า พาร์ทิชันที่แบ่งไว้ลงโปรแกรมเต็มแล้วเต็มอีก ทำนู่นทำนี่เพื่อเคลียร์เนื้อที่ก็ช่วยได้ระดับหนึ่ง เช่น

  • apt-get clean
  • เคลียร์ log file ต่างๆ
  • ลบ kernel image รุ่นเก่าที่ไม่ใช้แล้วทิ้งไป
  • ย้ายข้อมูลบางอย่างมาไว้ที่พาร์ทิชัน /home (เช่น kernel source tree) แล้วใช้ symlink โยงแทน

แต่มันก็ยังเต็มในที่สุดอยู่ดี เลยเริ่มใช้อีกมาตรการหนึ่ง คือไล่ลบแพกเกจที่ไม่ใช้แล้ว เช่นพวกไลบรารีเก่า ที่ debian ไม่ลบออก เผื่อโปรแกรมบางตัวที่ยังใช้อยู่

ถ้าใช้ aptitude จัดการแพกเกจ จะสามารถ mark แพกเกจให้เป็น manual หรือ auto ได้ โดยแพกเกจที่เป็น auto จะถูกลบโดยอัตโนมัติถ้าไม่มีแพกเกจอื่น depend on แล้ว ส่วนแพกเกจแบบ manual จะถูกลบเมื่อสั่งลบกับมือเท่านั้น

แต่ผมไม่ได้ใช้ aptitude นี่ซิ เลยต้องหาเครื่องมืออื่นช่วย ใน debian จะมีแพกเกจ deborphan ช่วยตรวจหาแพกเกจที่ไม่มีใคร depend on ซึ่งตัวเลือกปริยายคือการค้นหาในหมวด libs และ oldlibs ซึ่งหมายถึงไลบรารีที่ไม่มีใครใช้ เวลาใช้ก็พิมพ์คำสั่ง:

# deborphan

ก็จะแสดงรายชื่อแพกเกจกำพร้า เรียงบรรทัดมา ก็อาจจะดูรายชื่อแล้วไปสั่งลบผ่าน apt-get หรือ aptitude ก็ตามแต่ แต่ช้าก่อน! มีเครื่องมือที่ง่ายกว่านั้นติดมากับ deborphan ด้วย คือ:

# orphaner

จะแสดงรายการแพกเกจกำพร้าในไดอะล็อก พร้อมให้กาเลือกลบแพกเกจที่ต้องการ พอกด OK ก็จะเรียก apt-get มาลบให้เลย

10 มกราคม 2549

ขอบคุณ

ขอขอบคุณ คุณพิชิต จิตประไพ ผู้ หย่อนสตางค์ลงหมวก อีกครั้งหนึ่ง

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

07 มกราคม 2549

Debian Xorg Updates

debian วันนี้ update Xorg 6.9.0 อีกเพียบ มีการ แตก xterm ออกมาเป็นตัวแรก สำหรับการย้ายไป release Xorg แบบ modular ใน 7.0 โดยไปใช้ xterm ของ Thomas Dickey โดยตรง ซึ่งโดยปกติเขาต้อง sync โค้ดกับ Xorg และ XFree86 อยู่แล้ว แต่ต่อไป xterm ของ debian จะไม่ผ่าน Xorg อีก และก็กลายเป็นแพกเกจแรกของ X Window ใน debian ที่ใช้ autotools แทน imake

ส่วน GNOME ก็ทยอยเอาไลบรารีมา เมื่อวานเอา gconf มาก่อน วันนี้ libxml2, libxklavier, glib มาละ หุๆ แต่ dbus ยังติดอีกหลายแพกเกจ.. นี่ถ้า upload ครบนี่ debian sid ก็จะกลายเป็น Xorg, GNOME, KDE รุ่นล่าสุดที่เป็น stable version ละ กลับมาสัมผัส bleeding edge ทางฝั่ง desktop อีกครั้ง

ปีใหม่ที่ภูเรือ

เมื่อปีใหม่ที่ผ่านมา น้องๆ มาลากไปเที่ยวภูเรือกันทั้งครอบครัว พอดีรูปที่ถ่ายมาเพิ่งล้างฟิล์มเสร็จ เอ้ย! เพิ่งมีเวลาอัปโหลด (หุๆ ยุคดิจิทัลแล้วน่อ)

flickr Phurua album

ยังอัปโหลดไม่ครบ ใช้โควตาไปกับรูปครอบครัวซะเยอะ :-P

06 มกราคม 2549

GNOME 2.12 is Coming to Town

ถัดจาก Xorg 6.9.0 และ Linux 2.6.14.5 ก็ตามด้วย Linux 2.6.15 มาติดๆ ใน debian sid แต่เรื่องที่น่าตื่นเต้นกว่าคือ วันนี้เริ่มมีแพกเกจของ GNOME 2.12 โผล่มาแล้ว (เสียที)

ติดตามสถานะของ GNOME ใน debian ได้จาก Blog ของ Jordi Mallach หรืออ่านใน Planet Debian ก็ได้ จาก แผนการ upload GNOME จะเห็นว่า GNOME 2.12 นั่งรอเงกอยู่ใน experimental นานแล้ว แต่ต้องรอ KDE 3.5 ให้อัปโหลดไปด้วยกัน เพราะทั้งสองเดสก์ท็อปจะใช้ dbus 0.60 ซึ่งไม่ compat กับ dbus 0.50 แต่การรอ KDE ก็หมายถึงการรอ C++ transition ที่เกิดขึ้นใน debian ทั้งหมดด้วย ซึ่งขณะนี้ก็ดูเหมือนจะเรียบร้อยแล้ว และ dbus ตัวใหม่ก็พร้อมแล้ว (ใน experimental) ก็เท่ากับว่า ทุกอย่างพร้อมแล้วสำหรับ GNOME 2.12 และ KDE 3.5 ที่จะเคลื่อนจาก experimental เข้าสู่ unstable

อาทิตย์นี้คงรออัปเกรด GNOME สนุกละ :-)

05 มกราคม 2549

เรื่องวุ่นๆ ของ debian apt key

สองวันที่ผ่านมา ผู้ใช้ debian unstable อาจเจอคำเตือนเมื่อ upgrade ผ่าน apt เกี่ยวกับลายเซ็นอิเล็กทรอนิกส์ ซึ่งหมดอายุลง แล้วจะมีคำถามว่าจะติดตั้งแพกเกจโดยไม่ตรวจสอบหรือไม่ ทำนองนี้:

# apt-get update
Get:1 file: unstable Release.gpg [189B]
Get:2 file: unstable Release [2102B]
Ign file: unstable/main Packages
Ign http://linux.thai.net ./ Release.gpg
Hit ftp://linux.thai.net unstable Release.gpg
Ign file: unstable/contrib Packages
Ign http://linux.thai.net ./ Release
Ign file: unstable/non-free Packages
Ign http://linux.thai.net ./ Packages
Hit ftp://linux.thai.net unstable Release
Hit http://linux.thai.net ./ Packages
Hit ftp://linux.thai.net unstable/main Packages
Hit ftp://linux.thai.net unstable/contrib Packages
Hit ftp://linux.thai.net unstable/non-free Packages
Hit ftp://linux.thai.net unstable/main Sources
Hit ftp://linux.thai.net unstable/contrib Sources
Hit ftp://linux.thai.net unstable/non-free Sources
Get:3 ftp://ftp.debian.org unstable Release.gpg [378B]
Get:4 ftp://ftp.debian.org unstable Release [38.2kB]
Ign ftp://ftp.debian.org unstable Release
Get:5 ftp://ftp.debian.org unstable/main Packages [2970kB]
Get:6 ftp://ftp.debian.org unstable/contrib Packages [52.1kB]
Get:7 ftp://ftp.debian.org unstable/non-free Packages [60.5kB]
Fetched 3124kB in 4m19s (12.0kB/s)
Reading package lists... Done
W: GPG error: ftp://ftp.debian.org unstable Release: The following
signatures couldn't be verified because the public key is not avai
lable: NO_PUBKEY 010908312D230C5F
W: You may want to run apt-get update to correct these problems

apt ตั้งแต่รุ่น 0.6 เป็นต้นมา จะมีการตรวจสอบความครบถ้วนของแพกเกจต่างๆ ด้วยลายเซ็นอิเล็กทรอนิกส์ เพื่อป้องกันการปลอมปนแพกเกจจากผู้ไม่ประสงค์ดีที่อาจเจาะ mirror เข้าไปได้ แต่ถ้าไม่ใช่ผู้ดูแล ก็จะไม่สามารถเซ็นกำกับไฟล์ Release ได้ และ apt ก็จะตรวจพบความผิดปกตินี้

บังเอิญว่า apt รุ่นใหม่ที่อัปเดตมา จะให้ public key ของ debian maintainer มาอยู่แล้ว ก็เลยตรวจลายเซ็นได้ทันที แต่พอขึ้นปีใหม่ ดูเหมือนลายเซ็นจะหมดอายุ ทีแรกก็ไม่กล้าอัปเกรด กลัวโดน trojan horse แต่ไปอ่านบทความ Using the GPG signature checking with apt 0.6 ที่ Debian Administration พบวิธีที่จะขอคีย์ใหม่มาได้แบบปลอดภัย ถึงได้กล้าอัปเกรด

เริ่มจากขอ public key โดยดูจากบรรทัดคำเตือน:

 
W: GPG error: ftp://ftp.debian.org unstable Release: The following
signatures couldn't be verified because the public key is not avai
lable: NO_PUBKEY 010908312D230C5F

แล้วดึงเอาตัวเลขฐานสิบหก 8 หลักท้ายหลังคำว่า NO_PUBKEY มาสั่งขอ public key:

# gpg --keyserver keyring.debian.org --recv 2D230C5F

จากนั้น เอามา import เข้า /etc/apt/trusted.gpg ด้วยคำสั่ง apt-key:

# gpg --armor --export 2D230C5F | apt-key add -

ขอบคุณข้อมูลละเอียดจาก Martin's Blog

สำหรับผู้ที่ทำ mirror ส่วนตัวด้วย apt-move ก็สามารถเซ็นไฟล์ Release ได้เช่นกัน โดยสร้าง PGP key pair ด้วย "gpg --gen-key" แล้วใส่ชื่อคีย์ใน /etc/apt-move.conf ที่บรรทัด "SIGNINGKEY=..." จากนั้น ถ้าได้ตรวจสอบแล้วว่าไฟล์แพกเกจที่ดาวน์โหลดมา มาจากแหล่งแพกเกจจริง (เช่น ผ่าน apt-get โดยไม่มีคำเตือนเรื่องการตรวจสอบความครบถ้วน) ก็สั่ง "apt-move {update|mirror}" ตามปกติ apt-move จะเซ็นไฟล์ Release ให้เมื่อทำเสร็จ จากนั้น ก็ส่ง PGP public key ของคุณในรูป ASCII armored ให้กับผู้ใช้ ให้ผู้ใช้ import เข้า apt ของเขาด้วยคำสั่ง apt-key:

# apt-key add {gpg-file}

จากนั้น เมื่อ apt-get update ก็จะไม่มีคำเตือนเรื่องลายเซ็นอีก

เรื่องเซ็น apt-move นี่ ทำมาระยะนึงกับทุก mirror ส่วนตัวละ ก็ใช้การได้ดี

hacker emblem