จะแก้ไข libudev.so.0 ที่หายไปเพื่อให้ Chrome เริ่มต้นใหม่ได้อย่างไร


27

พยายามที่จะเริ่มต้นโครเมี่ยมให้ผลผลิตในข้อผิดพลาดดังต่อไปนี้ในบรรทัดคำสั่ง:

/opt/google/chrome/chrome: error while loading shared libraries: libudev.so.0: cannot open shared object file: No such file or directory

ข้อผิดพลาดปรากฏตัวครั้งแรกใน Ubuntu 13.04 ฉันพยายามกำจัดและติดตั้ง Chrome ใหม่ มันคงอยู่หลังจากอัปเกรดเป็น Ubuntu 13.10

คำตอบ:


17

หาก Chrome ไม่เริ่มทำงานหลังจากการอัปเกรด Ubuntu ตั้งแต่≤12.10ถึง≥13.04ให้เปิดเทอร์มินัลแล้วเรียกใช้คำสั่งต่อไปนี้:

sudo dpkg-reconfigure google-chrome-stable

คำอธิบายมีดังนี้


อย่างน้อยสำหรับรุ่น Chrome ในรูปแบบ 28 ถึง 37 ไบนารีของ Chrome สามารถใช้สิ่งใดก็ได้libudev.so.0หรือlibudev.so.1มีอยู่ในระบบ ด้วยการแก้ไขปัญหาChromium / Chrome 226002 (ซึ่งเข้าสู่ช่องที่ไม่เสถียรในเดือนเมษายน 2013) โปรแกรมติดตั้งจะพิจารณาว่าจะใช้ช่องใด อ้างอิงไบนารีlibudev.so.0; โปรแกรมติดตั้งจะสร้างลิงค์สัญลักษณ์จาก/opt/google/chrome/libudev.so.0ไปยังlibudev.so.1บนระบบหากlibudev.so.0ไม่พบ

โปรดทราบว่ามันเป็นความคิดที่ดีที่จะสร้าง/usr/libขึ้นมา หมายเลขเวอร์ชันหลักในไลบรารีเปลี่ยนไปเมื่อเวอร์ชันที่ใหม่กว่าเข้ากันไม่ได้ การสร้างลิงก์สัญลักษณ์นี้ใช้งานได้ดีสำหรับ Chrome เนื่องจากใช้เฉพาะคุณลักษณะที่เข้ากันได้ระหว่างรุ่น 0 และรุ่น 1 แอปพลิเคชันอื่น ๆ อาจทำงานผิดพลาดหรือสร้างข้อมูลที่เสียหายหากคุณบังคับให้รันด้วยเวอร์ชันที่ผิด

วิธีการที่แพ็คเกจ Chrome ใช้งานได้ดีในสถานการณ์ส่วนใหญ่ แต่ก็ยังเป็นแฮ็คที่สกปรกและมีข้อ จำกัด หากlibudev0ถอนการติดตั้งแพคเกจหลังจากติดตั้ง Chrome ซึ่งมีแนวโน้มว่าจะเกิดขึ้นเมื่อคุณอัปเกรด Ubuntu แล้ว Chrome จะยังคงได้รับการตั้งค่าให้ใช้งานlibudev.so.0แต่ไฟล์จะไม่สามารถใช้งานได้อีกต่อไป ในการแก้ไขปัญหานี้ให้สคริปต์การติดตั้งทำงานอีกครั้งและในเวลานี้ตรวจพบว่าlibudev.so.0ไม่พร้อมใช้งานดังนั้นจึงควรสร้างลิงก์สัญลักษณ์เพื่อใช้libudev.so.1แทน คุณสามารถเรียกใช้สคริปต์การติดตั้งใหม่ได้โดยการเรียกใช้dpkg-reconfigure google-chrome-stableเป็นรูท


36

ตามที่กิลส์ชี้ให้เห็นวิธีการนี้สามารถนำไปสู่พฤติกรรมที่ไม่พึงประสงค์ โปรดลองแก้ปัญหาของเขาเป็นครั้งแรก หากวิธีนี้ไม่ได้ผลสำหรับคุณและคุณเข้าใจถึงความหมายที่ว่าสิ่งนี้อาจนำไปสู่ความเสียหายของข้อมูลที่เงียบคุณอาจทำสิ่งต่อไปนี้:

สมมติว่าเป็นระบบ 64 บิต symlink ที่ขาดหายไปสามารถสร้างได้ผ่าน:

sudo ln -s /lib/x86_64-linux-gnu/libudev.so.1.3.5 /usr/lib/libudev.so.0

สำหรับ Ubuntu 18:

sudo ln -s /lib/x86_64-linux-gnu/libudev.so.1.6.9 /usr/lib/libudev.so.0

สำหรับระบบ 32 บิต:

sudo ln -s /lib/i386-linux-gnu/libudev.so.1.3.5  /usr/lib/libudev.so.0

คุณอาจต้องตรวจสอบ libudev เวอร์ชันในเครื่องของคุณ


1
คำตอบนี้นำไปใช้กับปัญหาเช่น "Google Chrome ไม่เริ่มทำงานหลังจากอัปเกรดเป็น 13.10"
ศรี

สิ่งนี้ยังใช้งานได้กับ Dartium (เวอร์ชันการพัฒนาของ Chromium ที่ฝังตัว Dart VM) แม้ว่าฉันจะสร้างลิงค์กับลิงค์ libudev.so.1 แทนด้วยความหวังว่าหากเวอร์ชั่นเปลี่ยนลิงค์ก็ยังคงอยู่ แต่ฉันไม่แน่ใจเกี่ยวกับเรื่องนั้น สิ่งเดียวที่ฉันสามารถพูดได้ก็คือมันใช้งานได้สำหรับฉัน Kubuntu 14.10
69112

2
นี่เป็นความคิดที่ไม่ดี: ใช้งานได้กับ Chrome แต่อาจทำให้โปรแกรมอื่น ๆ ที่ไม่ได้มาจาก Ubuntu - แทนที่จะได้รับข้อความแสดงข้อผิดพลาดคุณอาจได้รับข้อมูลเสียหายเงียบ
Gilles 'หยุดความชั่วร้าย'

สิ่งนี้ใช้ได้กับฉัน
ซองกุกลิม
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.