apt-get เพี้ยนไปแล้วครับ

จากเดิมจะอัพเกรด kernel เป็น bigmem เจอเลยครับ
อัพมาไม่สมบูรณ์ฟ้องเกี่ยวกับฟ้อนของเครือง locale พอลอง apt-get check ดูก็เป็นแบบนี้
dbweb3:/boot# apt-get check
Reading package lists... Done
Building dependency tree
Reading state information... Done
You might want to run `apt-get -f install' to correct these.
The following packages have unmet dependencies:
cpp-4.3: Depends: gcc-4.3-base (= 4.3.1-2) but 4.3.2-1.1 is installed
g++-4.3: Depends: gcc-4.3-base (= 4.3.1-2) but 4.3.2-1.1 is installed
gcc-4.3: Depends: gcc-4.3-base (= 4.3.1-2) but 4.3.2-1.1 is installed
libgcc1: Depends: gcc-4.3-base (= 4.3.1-2) but 4.3.2-1.1 is installed
libstdc++6: Depends: gcc-4.3-base (= 4.3.1-2) but 4.3.2-1.1 is installed
libstdc++6-4.3-dev: Depends: gcc-4.3-base (= 4.3.1-2) but 4.3.2-1.1 is installed
E: Unmet dependencies. Try using -f.

คิดว่าน่าจะเกิดการขัดข้องของการอัพเดท มาก่อนเลยทำตามคำแนะนำ
apt-get -f install ฟอสใหม่ดู ผลคือ

dbweb3:/boot# apt-get -f install
Reading package lists... Done
Building dependency tree
Reading state information... Done
Correcting dependencies... Done
The following extra packages will be installed:
cpp-4.3 g++-4.3 gcc-4.3 libgcc1 libstdc++6 libstdc++6-4.3-dev
Suggested packages:
gcc-4.3-locales g++-4.3-multilib gcc-4.3-doc libstdc++6-4.3-dbg gcc-4.3-multilib libmudflap0-4.3-dev libgcc1-dbg libgomp1-dbg
libmudflap0-dbg libstdc++6-4.3-doc
The following packages will be upgraded:
cpp-4.3 g++-4.3 gcc-4.3 libgcc1 libstdc++6 libstdc++6-4.3-dev
6 upgraded, 0 newly installed, 0 to remove and 244 not upgraded.
4 not fully installed or removed.
Need to get 11.0MB of archives.
After this operation, 512kB of additional disk space will be used.
Do you want to continue [Y/n]? y
Get:1 http://ftp.coe.psu.ac.th stable/main libgcc1 1:4.3.2-1.1 [25.8kB]
Get:2 http://ftp.coe.psu.ac.th stable/main libstdc++6 4.3.2-1.1 [332kB]
Get:3 http://ftp.coe.psu.ac.th stable/main g++-4.3 4.3.2-1.1 [3414kB]
Get:4 http://ftp.coe.psu.ac.th stable/main libstdc++6-4.3-dev 4.3.2-1.1 [1389kB]
Get:5 http://ftp.coe.psu.ac.th stable/main gcc-4.3 4.3.2-1.1 [2747kB]
Get:6 http://ftp.coe.psu.ac.th stable/main cpp-4.3 4.3.2-1.1 [3087kB]
Get:7 http://ftp.coe.psu.ac.th stable/main cpp-4.3 4.3.2-1.1 [3087kB]
Fetched 10.2MB in 2min2s (83.7kB/s)
perl: warning: Setting locale failed.
perl: warning: Please check that your locale settings:
LANGUAGE = "en_TH:en_US:en_GB:en",
LC_ALL = (unset),
LANG = "en_US"
are supported and installed on your system.
perl: warning: Falling back to the standard locale ("C").
locale: Cannot set LC_ALL to default locale: No such file or directory
dpkg: error processing libc6 (--configure):
package libc6 is not ready for configuration
cannot configure (current status `triggers-awaited')
Errors were encountered while processing:
libc6
E: Sub-process /usr/bin/dpkg returned an error code (1)

ก็ยังไม่ได้ลอง locale ดู จะมีฟ้อนที่มันเรียกดังนี้

dbweb3:/boot# locale
locale: Cannot set LC_ALL to default locale: No such file or directory
LANG=en_US
LANGUAGE=en_TH:en_US:en_GB:en
LC_CTYPE="en_US"
LC_NUMERIC="en_US"
LC_TIME="en_US"
LC_COLLATE="en_US"
LC_MONETARY="en_US"
LC_MESSAGES="en_US"
LC_PAPER="en_US"
LC_NAME="en_US"
LC_ADDRESS="en_US"
LC_TELEPHONE="en_US"
LC_MEASUREMENT="en_US"
LC_IDENTIFICATION="en_US"
LC_ALL=

dbweb3:/boot# dpkg-reconfigure locales
perl: warning: Setting locale failed.
perl: warning: Please check that your locale settings:
LANGUAGE = "en_TH:en_US:en_GB:en",
LC_ALL = (unset),
LANG = "en_US"
are supported and installed on your system.
perl: warning: Falling back to the standard locale ("C").
locale: Cannot set LC_ALL to default locale: No such file or directory
/usr/sbin/dpkg-reconfigure: locales is broken or not fully installed

มันจะเซ็ต LC_ALL ตรงนี้ได้ไงหนอ

แบบนี้ไม่ใช่ apt-get เพี้ยนมั้งครับ เป็น locales ที่เพี้ยน ^_^'

ลองดูที่ /etc/default/locale นะครับ

ใน /etc/default/locale เป็น
LANG=en_US

ใน /etc/environment เป็น
LANGUAGE="en_TH:en_US:en_GB:en"

LANG=en_US

ใน /etc/locale.gen เป็น
en_US ISO-8859-1

ซึ่งก็เหมือนเดิม มาใช้มานานแล้วเหมือนกับเครื่องอื่นๆอะคับ ถ้าเราแก้ไฟล์พวกนี้ไป เราต้องสั่งคำสั่งอะไรให้เครื่องมัน gen ค่าใหม่หรือเปล่าครับเผื่อมันไม่อัพเดท

dbweb3:/etc# locale-gen
bash: locale-gen: command not found

- -"

ท่าทาง locales จะยังติดตั้งไม่สมบูรณ์ (พังอยู่) ซึ่งก็จะทำให้ perl มันเพี้ยน (dpkg-reconfigure เป็น perl script) แต่ปัญหาหลักคือ จะทำยังไงให้ configure libc6 ผ่าน..

เป็นปัญหาของ apt อย่างที่จั่วหัวไว้จริง ๆ แหละครับ ลองสั่ง "dpkg --configure -a" ก่อนมั้งครับ ถ้ายังไม่ผ่านค่อยมาหามาตรการอื่นต่อไป

(สงสัย state ของ libc6 เหมือนกัน ว่าเป็น "triggers-awaited" ได้ยังไง มันไม่น่าจะไป trigger ใครนี่นา ลองคำสั่งที่ว่าก่อนละกันครับ เผื่อมันเคลียร์ให้ได้)

Creative Commons License ลิขสิทธิ์ของบทความเป็นของเจ้าของบทความแต่ละชิ้น
ผลงานนี้ ใช้สัญญาอนุญาตของครีเอทีฟคอมมอนส์แบบ แสดงที่มา-อนุญาตแบบเดียวกัน 3.0 ที่ยังไม่ได้ปรับแก้