OpenOffice.org Uninstallation
Tuesday, August 29, 2006
จั่วหัวซะน่ากลัว แต่จริงๆ ก็ไม่มีอะไรมาก แค่คิดว่าทำไมตัว 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 ที่ทำการติดตั้งลงไปเนี่ยมันมีอะไรบ่้าง แบบนี้
ซึ่งมันจะ return ค่าออกมาแบบ
เป็นจำนวนมากคิดว่าได้ทั้งหมด 26 packages หลังจากนั้นก็ตัดส่วนที่แสดงเวอร์ชันออกแล้วเก็บทั้งหมดลงไฟล์ชั่วคราวแล้วใช้ for loop เพื่อทำการ uninstall ด้วยคำสั่ง
เสร็จแล้วก็ปรับแต่งเปลี่ยนแปลงหน้าตานิดๆ หน่อยๆ เพื่อให้ดูดี เช่นมีไดอะล็อก มี progress bar เป็นต้น (มันใช้ง่ายอยู่แล้วแหละ แค่ตอบว่าแน่ใจว่าจะลบออก ก็เท่านั้น)
ข้อเสียจากการใช้สคริปต์นี้คือ มันช้าโคตร เพราะว่าใช้ rpm -qa ทำการหา packages หลายรอบ ยังหาวิธีการจัดการกับ rpm package ที่ดีกว่านี้ไม่ได้ แถมพอใช้ร่วมกับ Kdialog ก็ทำให้ผู้ที่สามารถ run script นี้ได้เต็มรูปแบบก็มีแต่ root อีก (คือต้อง login เป็น root เพราะ su จะมีปัญหาเวลาเรียกใช้งานโปรแกรมที่เป็น X นอกจากจะ export display ออกไปให้คำสั่ง su สามารถใช้ display ได้ด้วย แต่ตามค่าปริยายแล้วเป็นสิ่งที่ไม่ควรทำ) ใช้ kdesu ก็ไม่ได้ สคริปต์มันไม่ทำงานต่อ ถ้าใครจะปรับปรุงสคริปต์นี้มห้มันดีขึ้นก็ได้นะ ไม่ว่ากัน และขอขอบคุณด้วย
ลองดูสคริปต์ได้ ที่นี่ ครับ
Read more...
จริงๆ แค่คิดจะติดตั้งก็ยากแล้วสำหรับบางคน เค้าคงคิดว่าคนใช้ 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 ก็ไม่ได้ สคริปต์มันไม่ทำงานต่อ ถ้าใครจะปรับปรุงสคริปต์นี้มห้มันดีขึ้นก็ได้นะ ไม่ว่ากัน และขอขอบคุณด้วย
ลองดูสคริปต์ได้ ที่นี่ ครับ
Labels: howto, linux, Openoffice.org, tech
Read more...











