- โค้ด: เลือกทั้งหมด
yum -y update
ปรากฏว่าพอดาวน์โหลดเสร็จไฟล์เสร็จแล้วกำลังติดตั้ง มีข้อความฟ้อง error แบบนี้
- โค้ด: เลือกทั้งหมด
--> Processing Conflict: elastix-framework conflicts elastix-system <= 2.4.0-2
--> Finished Dependency Resolution
elastix-framework-2.4.0-12.noarch from elastix-updates has depsolving problems
--> elastix-framework conflicts with elastix-system
Error: elastix-framework conflicts with elastix-system
You could try using --skip-broken to work around the problem
You could try running: package-cleanup --problems
package-cleanup --dupes
rpm -Va --nofiles --nodigest
The program package-cleanup is found in the yum-utils package.
แล้วก็หยุดการอัพเดทไป
สาเหตุ
ดูจากข้อความที่แสดงให้เห็น มี 2 แพ็กเกจมันขัดๆกันอยู่คือ elastix-system และ elastix-framework ครับ ซึ่ง elastix-system คือเมนู System ที่เราเห็นบนหน้าเว็บ Elastix นั่นแหล่ะครับ ส่วน elastix-framework คือภาพรวมๆทั้งหมดที่เราเห็นบนหน้าเว็บ
วิธีการแก้ไข
ลองทำตามคำแนะนำข้างบนดูครับ โดยการรันคำสั่งนี้
- โค้ด: เลือกทั้งหมด
yum -y --skip-broken update
หลังจากผ่านไปสักพัก พบว่าไม่หายครับ เป็นเหมือนเดิมเลย
งั้นผมก็จะลองตามวิธีของผมคือถอนแพ็กเกจที่มันขัดกันออกก่อน การถอนแพ็กเกจให้ใช้คำสั่ง rpm -e ตามด้วยชื่อ package ครับ แต่ก่อนจะรู้ว่าจะใส่ชื่อแพ็กเกจว่าอะไรนั้นต้องเช็คด้วยคำสั่ง rpm -qa ดูก่อนครับ
- โค้ด: เลือกทั้งหมด
rpm -qa| grep elastix-system
ผลลัพธ์ เจอ 2 แพ็กเกจ
elastix-system-2.4.0-11
elastix-system-2.4.0-1
** ก่อนจะทำตามคำสั่งต่อไปนี้ ให้แบ็คอัพไฟล์และดาต้าเบสไว้ก่อนครับ **
- โค้ด: เลือกทั้งหมด
cp /etc/amportal.conf /etc/amportal.conf.backup
cp /etc/elastix.conf /etc/elastix.conf.backup
cd /home
mysqldump -uroot -p --all-databases > elastix-database.sql
จากนั้นเริ่มลงมือลบแพ็กเกจแรกก่อน อันที่เป็นเวอร์ชั่นต่ำกว่าหน่ะครับ
- โค้ด: เลือกทั้งหมด
rpm -e elastix-system-2.4.0-1
ลบได้ไม่มีฟ้องอะไร แล้วลบอีกอันที่เหลือ
- โค้ด: เลือกทั้งหมด
rpm -e elastix-system-2.4.0-11
อันนี้มี Error ครับ ตามนี้
error: Failed dependencies:
elastix-system >= 2.3.0-10 is needed by (installed) elastix-pbx-2.4.0-1.noarch
elastix-system is needed by (installed) elastix-security-2.4.0-1.noarch
elastix-system >= 2.4.0-1 is needed by (installed) elastix-2.4.0-1.noarch
elastix-system >= 2.3.0-10 is needed by (installed) elastix-pbx-2.4.0-7.noarch
elastix-system is needed by (installed) elastix-security-2.4.0-6.noarch
elastix-system >= 2.4.0-8 is needed by (installed) elastix-2.4.0-2.noarch
ฟ้อง Error เกี่ยวกับ dependency (แปลว่ามีโปรแกรมอื่นที่ต้องการแพ็กเกจนี้อยู่) งั้นต้องสั่งลบแบบไม่ต้องสนใจ dependency ด้วยคำสั่งนี้ครับ
- โค้ด: เลือกทั้งหมด
rpm -e elastix-system-2.4.0-11 --nodeps
ผลลัพธ์
Delete System menus
The menus have been removed
Dump and delete elastix-system databases
Nothing to be done in database dashboard.
Nothing to be done in database FTP.
Nothing to be done in database hardware_detector.
Nothing to be done in database network.
Nothing to be done in database acl.
warning: /etc/dahdi/genconf_parameters saved as /etc/dahdi/genconf_parameters.rpmsave
แล้วอัพเดทใหม่อีกครั้ง
- โค้ด: เลือกทั้งหมด
yum -y update
ก็จะอัพเดทได้แล้วครับ
แต่มีปัญหาเกิดขึ้นครับ ลองเข้าหน้าเว็บ Elastix ดู จะพบว่าแท็บ System หาย ซึ่งเป็นเพราะว่าเราลบแพ็กเกจ elastix-system ออกนั่นเองครับ วิธีเรียกแท็บ System ให้กลับมาเหมือนเดิมนั้นทำไม่ยากครับ ให้ติดตั้ง elastix-system ใหม่
- โค้ด: เลือกทั้งหมด
yum -y install elastix-system
ระหว่างการติดตั้งจะเห็นข้อความต่างๆนาๆรวมทั้งมี Error บ้างนิดหน่อย ดูผ่านๆครับ
เอาไฟล์ที่แบ็คอัพไว้กลับคืนมา
- โค้ด: เลือกทั้งหมด
mv /etc/amportal.conf /etc/amportal.conf.old
mv /etc/elastix.conf /etc/elastix.conf.old
cp /etc/amportal.conf.backup /etc/amportal.conf
cp /etc/elastix.conf.backup /etc/elastix.conf
ส่วนดาต้าเบสไม่ต้อง restore ครับเพราะดาต้าเบสไม่ได้เสียหาย ยังคงอยู่เหมือนเดิมทุกประการ
จะได้ Tab System กลับมาเหมือนเดิม
ทุกอย่าง OK แล้วครับ