เริ่มการอัพเกรด Gentoo ในเครื่องโคโล ตอนที่ 2

Posted by AnnoMundi on November 10, 2006

หลังจากที่รอเครื่องคอมไพล์ Package ต่างๆเสร็จโดยระว่างคอมไพล์ก็มี error ใน
บาง Package ซึ่งก็ใช้คำสั่ง emerge –resume –skipfirst ข้ามไป หลังจากนั้น
ก็สั่ง Compile Kernel ใหม่เพราะของเดิมคอมไพล์ด้วย Gcc 3.4.x คำสั่งคอมไพล์
ก็คือ

genkernel --menuconfig all

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

และแล้วผมก็คอมไพล์ไฟล์ต่างๆจนเสร็จจึงสั่งรีบูต….แล้วเครื่องผมก็หายเงียบสาปสูญ
ไปจากโลกไซเบอร์เน็ต T_T คืนนี้จะนอนหลับไหมนี่
ถ้าพรุ่งนี้ว่างผมคงต้องไปแก้ที่ IDC แต่ถ้าปัญหามันมากเกินเยียวยา ผมอาจต้องยกเครื่อง
กลับบ้าน แต่ทีนี้คงโดนคนที่ใช้ Free Webhosting บนเครื่องนั้นบ่นด่าแหงๆเลย
คืนนี้ผมคงต้องเอา backup เว็ป CodeSniper.Org ขึ้นโฮสท์นี้ก่อนชั่วคราว(มัง)

สรุปการรีโมทอัพเกรด Gentoo ของผมก็ล้มเหลวจนได้ เฮ้อ T_T

เริ่มการอัพเกรด Gentoo ในเครื่องโคโล ตอนที่ 1

Posted by AnnoMundi on November 09, 2006

วันนี้ได้เลิกปุบปับรีโมทเข้าไปแบ็คอัพข้อมูลเว็ปมาเก็บไว้ก่อน จากนั้นก็เิริ่มอัพเกรด
โปรแกรมต่างๆในเครื่องซึ่งเริ่มต้นที่ GCC ก่อนเลย เพราะตัวนี้ตัวสำคัญ
และเป็นตัวที่หลังจากอัพเกรดเสร็จแล้วจำเป็นต้องคอมไพล์โปรแกรมต่างๆในเครื่อง
ใหม่แทบทั้งหมด – -”

Step 1: Upgrade GCC

emerge -uav gcc

ในการสั่ง emerge เพื่ออัพเดท gcc นี้เครื่องผมจะมี package ที่เกี่ยวข้อง 8 ตัวที่
ถูกดึงมาคอมไพล์ และหลังจากรอมันคอมไพล์มาจนถึง package สุดท้่ายซึ่งก็คือ
glibc ก็มี error ออกมาบอกว่าให้เราใส่ USE=’nptl nptlonly’ ด้วย ผมจึงต้อง
สั่ง emerge glibc ใหม่อีกครัง

USE='nptl nptlonly' emerge glibc

หลังจากคอมไพล์ glib อยู่นานก็เสร็จ ผมก็ทำการเซ็ตให้ระบบเปลี่ยนไปใช้ gcc 4.1.1
แล้วก็ทำการ fix แก้ไข library ต่างที่ใช้ gcc 3.4.6 และ rebuild libtool ใหม่

Step 2: Change GCC Compiler to 4.1.1

gcc-config i686-pc-linux-gnu-4.1.1
env-update && source /etc/profile

Step 3: Fix and Re-build libtool

fix_libtool_files.sh 3.4.6
emerge --oneshot -av libtool

Step 4: Rebuild System

จากนั้นผมก็ทำการสั่งให้ทำการ compile system package ใหม่ด้วยคำสั่ง

emerge -eav system

ในขั้นนี้ผมมี package ที่ต้องคอมไพล์ถึง 97 pacakge คงต้องใช้เวลาหลายชั่วโมง
หลังจากที่รอเครื่องคอมไพล์ system เสร็จซึ่งกว่าจะเสร็จก็มี error ในระหว่าง
คอมไพล์ เนื่องจากการ emerge -eav system นี่มีการคอมไพล์บาง package ซ้ำ
กับในขั้นตอนที่ 1 ซึ่ง package ที่มีปัญหาคือ glibc เพราะผมดันไม่ได้ใส่ USE flags
ใน /etc/make.conf ผมเลยต้องใส่ nptl nptlonly เข้าไปใน make.conf แล้วจึงสั่ง

emerge --resume

เครื่องก็จะทำการ emarge ต่อจากตรง package ที่ error ซึ่งถ้าไม่ใช้คำสั่งนี้แต่ไป
สั่ง emerge -eav system ใหม่มันก็จะทำการเริ่มคอมไพล์ใหม่ตั้งแต่แรก

Step 5: Rebuild World

ในขั้นนี้ก็สามารถสั่ง

emerge -eav world

แล้วก็นั่งรอเลยก็ได้ แต่ผมเลือกคอมไพล์ mySQL ก่อนโดยทำตามขั้นตอนในเว็ปนี้
Upgrade Guide MySql to 4.0 or 5.0 แต่ผมอาจรวบยอดข้ามบางขั้นตอนไป

สรุปเมื่อคืนหลังจาก upgrade MySql เสร็จลอง restart service ดูปรากฏว่า
ใช้งานได้ไม่มีปัญหาเว็ปสามารถเปิดใช้งานได้ ก็เลยสั่ง Rebuild World ต่อ ซึ่ง
มี Package ที่ต้องคอมไฟล์รวมแล้ว เกือบ 500 Package -*- ผมก็นั่งเฝ้าจนเช้า
จึงไปนอน ตื่นมาบ่ายมาก็เปิดคอมรีโมทเข้าไปดูปรากฏว่ามี Error ขณะที่ยังเหลือ
Package ทีต้องคอมไพล์อีกเกือบ 200 Package เซ็งเลย Package ที่ Error
ก็คือ PEAR-Auth_SASL ซึ่งเป็น

!!! ERROR: dev-php/PEAR-Auth_SASL-1.0.1-r1 failed.
Call stack:
ebuild.sh, line 1546:   Called dyn_install
ebuild.sh, line 1020:   Called src_install
ebuild.sh, line 1255:   Called php-pear-r1_src_install
php-pear-r1.eclass, line 66:   Called die

!!! Unable to install PEAR package

ผมก็นั่ง Search ใน Gentoo Forums ดูก็มีคนเจอ Error แบบเดียวกันหลายคน
แต่เขาจะเจอ Error นี้กับ Pear module อื่นๆ ซึ่งก็มีคนบอกวิธีแก้มา แต่บางคน
ก็ใช้ไม่ได้ ซึ่งผมเองก็ด้วย T_T หลังจากพยายามหาวิธีแก้ต่างๆนาอยู่หลายชั่วโมง
ผมก็ต้องยอมแพ้ ต้องสั่งให้มัน emerge ข้าม Package ที่ Error ไปก่อน โดยใช้
คำสั่งตามด้านล่าง

emerge --resume --skipfirst

ซึ่งเครื่องจะ emerge ต่อจากเดิมแต่จะทำการข้าม Package แรกไป ซึ่งถ้าเราไม่ใช้
–skipfirst เครื่องก็จะ emerge ต่อแต่ก็จะเจอ error และหลุดออกมาเหมือนเดิม

ตอนนี้ผมก็ได้แต่รอมันคอมไพล์ที่เหลือให้หมดก่อน แล้วจะ compile kernel ใหม่
จากนั้นก็ Restart เครื่องโดยหวังว่าเมือ restart เครื่องแล้วเมื่อกลับมาคอมไพล์
package ที่ error มันจะสามารถคอมไพล์ผ่าน

*โคโล = Colocated Server

ติดตามต่อ >> ตอนที่ 2

เรื่องกลุ้มๆเกี่ยวกับ Gentoo ตอนที่ 1

Posted by AnnoMundi on November 08, 2006

วันนี้ก็ได้มีโอกาส update portage (emerge –sync) แล้วก็ลองเช็คดูว่ามีอะไร
ที่ต้องอัพเกรดมั่งหรือเปล่า ผลคือเพียบเลย – -” แถมเป็นตัวที่เสี่ยงต่อการอัพเกรดแล้ว
อาจต้องเสียเวลาแก้ไขเป็นวันๆ โปรแกรมที่ major upgrade หลักๆก็มี

gcc 3.4.x -> 4.1.1

glibc 2.3.x -> 2.4

mySQL 4.1.x -> 5.0.x

นอกนั้นเป็นโปรแกรมหรือ library package อีกเกือบร้อย – -” ทีเกือบร้อยก็เพราะ
ตัวหลักๆที่ว่ามาอย่าง gcc เมื่อลงเสร็จจำเป็นต้อง compile โปรแกรมหรือ package อื่นๆ
เพื่อให้ใช้งานได้ไม่มีปัญหา รวมถึง Kernel ซึ่ง kernel เวอร์ชั่นใหม่ผมไม่อยากลงเลย
เพราะเหมือนมันจะมีการเปลี่ยน module เกี่ยวกับ network ซึ่งถ้า compile เสร็จสั่ง
รีบูตแล้วดันมองไม่เห็น Network ได้ซวยตายเลยงานนี้ เพราะจะไม่สามารถ ssh เข้าไป
จัดการได้ต้องถ่อสังขารไปแก้ที่เครื่องโดยตรงถึงตึก กสท. – -”

ตอนนี้เลยยังได้แต่นั่งคิดว่าจะเอายังไงดีจะอัพดีหรือไม่อัพ แต่ใจจริงอยากใช้ mySql 5 จัง
ถ้าอัพนี่เรื่องใหญ่เลยเพราะมีคนมาใช้บริการฟรีโฮสทติ้งอยู่ 3 ราย ก็ไม่อยากให้เขาเดือดร้อน
อืมมม ไว้ตัดสินใจได้ค่อยว่ากันอีกทีแระกัน -*-

ปล. ตั้งชื่อไว้ตอนที่ 1 เพราะคิดว่ามันน่าจะมีเรื่องให้กลุ้มเกี่ยวกับ Gentoo ตอน 2 แหงๆ – -”

ปัญหาการใช้งาน Drupal หลังลง mod_security

Posted by AnnoMundi on October 30, 2006

พอดีวันก่อนผมได้ทำการลง mod_security บนเครื่อง Colocated Server ซึ่งใช้ Gentoo
ซึ่งก็คิดว่าคงเรียบร้อย แต่วันนี้เข้าใช้งานเว็ปและต้องโพสท์กระทู้ กลับมีปัญหาคือไม่สามารถ
โพสท์ได้ เลยลองเซ็ค Log ของ apache ดูก็พบ error ตามด้านล่าง

mod_security: Access denied with code 500. Pattern match "multipart/form-data" at HEADER

ผมถึงได้รู้ว่าบาง Rules ของ mod_security เป็นสาเหตุทำให้ไม่สามารถโพสท์หรือแก้ไข content
ซึ่งผมไม่แน่ใจว่าเว็ปอื่นๆบนเครื่องจะมีปัญหาหรือเปล่า อย่างเว็ปที่ใช้ Joomla แต่ผมก็ได้ทำการ
แก้ไข ไฟล์ /etc/apache2/modules.d/99_mod_security.conf โดยแก้ไข rule ตรง
SecFilterForceByteRange เป็นดังด้านล่าง

SecFilterForceByteRange 1 255

และยกเลิก Rule หรือแก้ไขด้านล่างนี้ ถ้ายกเลิก ก็ใส่ # ด้านหน้าบรรทัดซะ

SecFilterSelective "HTTP_CONTENT_TYPE" multipart/form-data

หรือถ้าไม่ยกเลิก็ทำการแก้ไขให้ rule เป็นดังด้านล่างนี้ (ควรเปลี่ยนมากว่ายกเลิก)
SecFilterSelective HTTP_Content-Type "!(^$|^application/x-www-form-urlencoded$|^multipart/form-data;)"

ทั้งนี้ถ้าไม่สามารถแก้ไขไฟล์ 99_mod_security.conf ได้เองเพราะไม่ได้เป็น Admin
ก็ให้แก้ขในไฟล์ .htaccess ใน htdocs หรือ public_html ถ้าเว็ปนั้นเปิดใช้ mod_rewrite
เว็ปก็จะกลับมาใช้งานได้ตามปกติ

อาทิตย์ที่ผ่านมากับเรื่องวุ่นๆ

Posted by AnnoMundi on August 09, 2006

ไม่ได้อัพเดท Blog มา 2-3 อาทิตย์เนื่องจากพอดีมีเรื่องวุ่นๆ คือเมื่อประมาณ
2 อาทิตย์ที่แล้ว ประมาณตี 3 ก็เปิดคอมแล้วไปนอนดูหนังไฟที่บ้านก็ดับวูบไปประมาณ 2-3 วิ
แล้วเครื่องคอมของผมไม่ได้ต่อ UPS ไว้ก็ดับไปด้วย ที่ไม่ได้ต่อ UPS ไว้ก็เพราะ
เครื่องคอมผมใส่อุปกรณอัพเกรดมาเรื่อยจนมันกินไฟเกินกว่าที่ UPS มันจะสำรองไฟให้ได้
คือถ้าไฟตกไฟดับ UPS ก็จะดับไปด้วย ดังนั้นต่อหรือไม่ต่อก็มีค่าพอๆกันผมเลยไม่ต่อไว้ – -”
ต่อ UPS แค่ Router, Hub
สรุปก็คือผมได้คอมใหม่อีก 1 ชุด ก็เอามาลง Gentoo 64 bit เสียเวลา compile อยู่
1 วันเต็มๆ ผลคือมันมองไม่เห็น Network card และ sound card (onboard)…
ก็พยายาม search หาวิธีแก้ก็ไม่เจอเลยน forums ของ Gentoo สรุปเลยต้องอำลา
Gentoo หันมาใช้ Ubuntu แทน ก็เลยจัดการลง Ubuntu 64 bit ก็ลงได้ง่ายมาก
แต่พอลงเสร็จรีบูตเข้า Ubuntu ก็ดันไม่มีเสียง คือมันมองไม่เห็น sound card เหมือนกัน
แต่โชคดีที่ search หาวิธีแก้ได้ในเว็ปของ Ubuntu เอง
จากนั้นก็เริ่มทดลองใช้งาน ก็มีปัญหาตามมาอีกเพราะผมดันกระแดะใช้ 64bit ผลคือ
Macomedia ไม่้ได้ออก flash player plugin 64bit มาสำหรับ Linux -*-
ก็เลยต้องไปใช้ Flash plugin ที่เป็นของ Opensource แต่พอลงใช้ดูเมื่อเปิดบางเว็ป
ที่มี Flash บ่อยครั้งที่ Firefox จะปิดตัวเองไปดื้อๆ…มาถึงตรงนี้ปาไป 3 วันหลังจากที่
คอมเก่าเสีย… ผมเลยตัดใจกลับมาลง Ubuntu แบบ 32 bit แทน ซึ่งก็ Ok เลย
ใช้ได้เลยเพียงแต่ผมไม่ค่อยคล่องนัก เพราะถนัด Gentoo มากกว่า ถ้า
สุดท้ายตอนนี้ ผมต้องกลับมาใช้ Windows XP ไปพลางๆก่อน เพราะจะใช้ Linux
ให้เนียนๆคงต้องเสียเวลาในการเซ็ตคอนฟิกต่างๆค่อนข้างมาก และผมไม่ค่อยคุ้นเคยกับระบบ
จัดการ Package ของ Ubuntu สักเท่าไหร่ เลยต้องรอไปอีกสักพัก ตอนนี้ขอทำงาน
ต่อโดยใช้ Windows XP ไปก่อนเพราะไม่ต้องเสียเวลาเซ็ตอัพแและเรียรู้กับมันมาก
เหมือนบน Linux

หลังจากเซ็ต Windows XP และโปรแกรมต่างๆเข้าที่แล้ว เหมือนเรื่องวุ่นๆน่าจะจบลง
แต่ยัง!…ยังมีเรื่องวุ่นๆรอผมอยู่อีก ไว้จะมาบ่นต่อ…