Tuesday, August 29, 2006

OpenOffice.org Uninstallation

จั่วหัวซะน่ากลัว แต่จริงๆ ก็ไม่มีอะไรมาก แค่คิดว่าทำไมตัว OpenOffice.org สำหรับ Linux ซึ่งมาเป็นชุด rpm ชุดใหญ่ มันดันไม่มีเครื่องมือสำหรับติดตั้งและยกเลิกการติดตั้งติดมาให้ด้วย

จริงๆ แค่คิดจะติดตั้งก็ยากแล้วสำหรับบางคน เค้าคงคิดว่าคนใช้ Linux ก็ต้อง Geek ระดับนึงละมั้งซึ่งที่จริง มันไม่ใช่แบบนั้น ผมเองยังงมหาวิธีติดตั้งนานพอดู (เพราะไม่รู้ว่า rpm มันใช้ wild card ได้ด้วย) สำหรับการติดตั้งโปรแกรมก็เคยเขียนไว้ทีนึงแล้วที่นี่ ก็แค่สั่ง rpm -Uvh *.rpm ในไดเร็คทอรีที่เก็บชุดโปรแกรมเอาไว้ก็แค่นั้นตัว rpm จะจัดการติดตั้งให้ตามลำดับเรียบร้อยไม่ต้องห่วงเรื่อง dependencies

ทีนี้ บางคนอาจจะรู้สึกว่า OO.o ไม่ค่อยเหมาะกับเราแฮะ หรืออาจจะอยากใช้ KOffice หรือ Abiword/GNOME Office แทน แล้วก็อยากจะลบ OO.o ทิ้ง ทีนี้ทำไงดี (จะมีไหมเนี่ย ผมว่า OO.o เป็นชุดออฟฟิศที่เหมาะกับคนไทยมากที่สุดแล้วหละ) เก็บเอาไว้ก็เปลืองฮาร์ดดิสก์ ก็เป็นที่มาที่อยากจะเขียนตัว uninstall ซะเลย ทีแรกก็เขียนเป็น text mode ก่อน ต่อมาก็ซนอยากเขียนให้มันมี GUI มั่งก็เลยใช้ประกอบกับ Kdialog

หลักการทำงานก็ไม่มีอะไรมาก ก่อนอื่นหามาให้ได้ก่อนว่า packages ที่ทำการติดตั้งลงไปเนี่ยมันมีอะไรบ่้าง แบบนี้

rpm -qa |grep openoffice


ซึ่งมันจะ return ค่าออกมาแบบ

openoffice.org-[package]-[version]


เป็นจำนวนมากคิดว่าได้ทั้งหมด 26 packages หลังจากนั้นก็ตัดส่วนที่แสดงเวอร์ชันออกแล้วเก็บทั้งหมดลงไฟล์ชั่วคราวแล้วใช้ for loop เพื่อทำการ uninstall ด้วยคำสั่ง


for package in `cat $tmpfile`
do
rpm -e --nodeps $package
done


เสร็จแล้วก็ปรับแต่งเปลี่ยนแปลงหน้าตานิดๆ หน่อยๆ เพื่อให้ดูดี เช่นมีไดอะล็อก มี progress bar เป็นต้น (มันใช้ง่ายอยู่แล้วแหละ แค่ตอบว่าแน่ใจว่าจะลบออก ก็เท่านั้น)

ข้อเสียจากการใช้สคริปต์นี้คือ มันช้าโคตร เพราะว่าใช้ rpm -qa ทำการหา packages หลายรอบ ยังหาวิธีการจัดการกับ rpm package ที่ดีกว่านี้ไม่ได้ แถมพอใช้ร่วมกับ Kdialog ก็ทำให้ผู้ที่สามารถ run script นี้ได้เต็มรูปแบบก็มีแต่ root อีก (คือต้อง login เป็น root เพราะ su จะมีปัญหาเวลาเรียกใช้งานโปรแกรมที่เป็น X นอกจากจะ export display ออกไปให้คำสั่ง su สามารถใช้ display ได้ด้วย แต่ตามค่าปริยายแล้วเป็นสิ่งที่ไม่ควรทำ) ใช้ kdesu ก็ไม่ได้ สคริปต์มันไม่ทำงานต่อ ถ้าใครจะปรับปรุงสคริปต์นี้มห้มันดีขึ้นก็ได้นะ ไม่ว่ากัน และขอขอบคุณด้วย

ลองดูสคริปต์ได้ ที่นี่ ครับ

3 comments:

plynoi said...

writely ไงครับอีกทางเลือก :P

OO.o เทียบกับ Abiword (บนวินโดวส์ ทั้งคู่) ผมลองแล้ว Abi นี่เร็วกว่าเห็นๆ เลยนะ แต่ภาษาไทยก็เน่ามากๆ เช่นกัน

Anonymous said...

# rpm -e `rpm -qa |grep openoffice`

คุณหมอลองแบบนี้รึยังครับ ไอ้ตัว ( ` ) คือ back qoute (เขียนถูกเป่าหว่า) นะครับ
k_sukhum

DrRider said...

k_sukhum

อ่า เนื่องจากตอนนี้ย้ายค่ายมาเป็น Kubuntu แล้วครับ ลอง rpm ไม่ได้แล้ว แต่ผมว่ามันอาจจะมีปัญหาเพราะว่า

rpm -qa |grep openoffice มันจะ return ชื่อแพ็คเกจพร้อมกับเวอร์ชันมาด้วย เลยไม่แน่ใจว่า rpm -e มันจะลบได้หรือเปล่าครับ