เริ่มการอัพเกรด 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

บทความที่เกี่ยวข้อง

Trackbacks

Use this link to trackback from your own site.

Comments

Leave a response

แสดงความคิดเห็นของคุณ
  1. (required)
  2. (valid email required)
  3. (required)
  4. ส่งเป็น:
  5. Captcha
 

cforms contact form by delicious:days