Ubuntu 8.04 -> 10.04 Upgrade

กระบวนการ upgrade จาก Ubuntu 8.04 LTS ไปยัง Lucid 10.04 LTS นั้นจัดว่าน่าผิดหวังอย่างมาก ต่างจากการ upgrade จาก 6.06 มายัง 8.04 ที่แทบจะไม่มีปัญหาอะไรเลย

ปัญหาที่พบคือ

  1. GRUB boot ไม่ขึ้น เหมือนกับว่ากา initramfs image ไม่เจอ (/boot เป็น RAID1)
  2. Lucid upgrade มัน uninstall โปรแกรมที่ไม่ support ทิ้งไปเฉยๆ โดยไมเตือน ไม่แจ้งอะไรเลย ต่างกับตอน upgrade มา 8.04 ที่มันจะยังคงโปรแกรมเก่าเอาไว้ให้เรา ตัวโปรแกรมที่ผมได้รับผลกระทบคือ PostgreSQL 8.3 และ Tomcat 5.5

GRUB

เรื่อง GRUB นี่อาจจะเป็นเพราะ setting ของเครื่องผมก็ได้ เพราะมันเป็น RAID1 + RAID5 และมีทั้ง ext3 (/boot) และ xfs (/) ซึ่งก็มั่วอยู่นาน แก้ไปแก้มาก็ใช้ได้ โดยไม่รู้สาเหตุที่ชัดเจนว่าเกิดอะไรขึ้นแน่ หลักๆ ที่ทำคือ upgrade ไป GRUB2 + reinstall kernel package ใหม่ + reinstall GRUB โดยทั้งหมดทำจาก recovery console ของแผ่นติดตั้ง 10.04 server

PostgreSQL

สำหรับ PostgreSQL 8.3 นั้น ใน Lucid ไม่มีแล้ว โดยบังคับให้ไปใช้ 8.4 แทน โดยที่การ upgrade จาก Hardy จะ uninstall 8.3 ของเราไปหน้าตาเฉย (โดยไม่เตือนเลย) และลง 8.4 ให้แทน โดยไม่มีการ upgrade cluster ให้เราด้วย สรุปว่า upgrade แล้วจะได้ 8.4 ว่างๆ ไม่มีฐานข้อมูลอะไรของเราเลย (อนาถมาก)

วิธีแก้คือต้องลง PostgreSQL 8.3 กลับมาก่อน ไม่งั้นจะไม่สามารถ upgrade cluster ได้ แต่เนื่องจากว่า PostgreSQL 8.3 โดนถอดออกจาก repository ของ Lucid ไประหว่างการพัฒนา (ไม่รู้ทำไม) ทำให้มีทางเลือก 2 ทางคือ

  1. เพิ่ม repository ของ Karmic เข้ามา แล้วลง postgresql-8.3 ของ Karmic แทน ซึ่งมีคนบอกว่าใช้ได้
  2. download postgresql-8.3 deb package ที่โดนถอดออกไปของ Luicd มาติดตั้ง โดยสามารถ download ได้จาก Launchpad

ผมเลือกวิธีที่ 2 เพราะไม่อยากเอา Karmic repository เข้ามา

ส่วน package ที่จะเป็นต้องติดตั้งคือ

  • postgresql-8.3_8.3.9-1_xxx.deb และ
  • postgresql-client-8.3_8.3.9-1_xxx.deb

(โดย xxx เป็น platform เช่น amd64)

เมื่อติดตั้งแล้วก็จะได้ PostgreSQL 8.3 กลับมา โดยที่ฐานข้อมูลเดิมของเราจะยังอยู่ครบทุกประการ หากว่าเราต้องการจะ upgrade มาใช้ 8.4 ที่เป็น supported version ก็ให้ใช้คำสั่งตามนี้

pg_dropcluster 8.4 main  # ลบ 8.4 ที่ลงมาก่อน
pg_upgradecluster 8.3 main  # upgrade ฐานจาก 8.3 ไป 8.4

ที่มา: http://ubuntuforums.org/showthread.php?p=9383092

Tomcat

Tomcat ยิ่งแย่กว่า PostgreSQL คือ tomcat-5.5 โดน remove ออกไปเลย และไม่ติดตั้ง tomcat-6 ให้ด้วย วิธีแก้ก็ต้องไปติดตั้ง tomcat-6 และ migrate config กันเอาเอง (เนื่องจากไม่มีใน Lucid เหมือนกัน)

English

In order to upgrade your PostgreSQL 8.3 databases from Hardy to PostgreSQL 8.4 in Lucid, you will have to first install PostgreSQL 8.3 back. Hardy to Lucid upgrade will just remove your PostgreSQL 8.3 and not upgrade your cluster to 8.4.

To install PostgreSQL 8.3 in Lucid, you can either enable Karmic repository as noted here or install Lucid 8.3 deb from Launchpad

Then you could upgrade your cluster to 8.4 by two commands:

pg_dropcluster 8.4 main  #this will wipe out the new databases from the new install
pg_upgradecluster 8.3 main  #this to upgrade the 8.3 data to 8.4

Source: http://ubuntuforums.org/showthread.php?p=9383092