Lỗi trong khi tải thư viện dùng chung: libicuuc.so.59: không thể mở tệp đối tượng được chia sẻ: Không có tệp hoặc thư mục như vậy


11

Sau khi cập nhật với pacman -Syuq:

# pacman -Sc

pacman: lỗi trong khi tải thư viện dùng chung: libicuuc.so.59: không thể mở tệp đối tượng dùng chung: Không có tệp hoặc thư mục như vậy

# find / -name libicuuc.so.* 2>/dev/null
/usr/lib/libicuuc.so.60.1
/usr/lib/libicuuc.so.60

Arch Linux trong phiên bản Pi 1:

# uname -an
4.9.62-1-ARCH #1 SMP Fri Nov 17 13:42:55 UTC 2017 armv6l GNU/Linux

Vấn đề tương tự ở đây, xuất hiện ngày hôm nay. Đối với tôi libicuuc.so.59. Tôi phải đi qua dòng lệnh để khởi động và nhiều chương trình không hoạt động nữa
zakrapovic

Cũng thiếu libicui18n.so.59 có thể liên quan
zakrapovic

Tôi thực sự đã giải quyết vấn đề của mình với pacman -Sc tiếp theo là pacman -Syuu
zakrapovic

Câu trả lời:


20

Các giải pháp được đề xuất trước đây không liên quan hoặc không hiệu quả với tôi. Vì một số lý do, việc nâng cấp icugói từ 59.1-2 lên 60.1-1 đã khiến liên kết bị đứt và nhiều chương trình (bao gồm cả pacman) đã thất bại với lỗi này sau đó. Không có pacman bị gián đoạn về phía tôi.

Nếu bạn vẫn còn gói trước trong bộ đệm, bạn có thể thử gói này, cách này hiệu quả với tôi:

  1. Xác định vị trí phiên bản của bộ nhớ cache của gói (ví dụ: của tôi là /var/cache/pacman/pkg/icu-59.1-2-x86_64.pkg.tar.xz).
  2. Giải nén nó: mkdir -p ~/pkg/tmp && tar xJvf /var/cache/pacman/pkg/icu-59.1-2-x86_64.pkg.tar.xz -C ~/pkg/tmp
  3. Sao chép lib vào thư mục lib của bạn: sudo cp ~/pkg/tmp/usr/lib/libicu*.59 /usr/lib/
  4. Tiến hành cập nhật: sudo pacman -Syyu
  5. Bây giờ bạn có thể loại bỏ các tập tin bạn vừa giải nén.

2
Cảm ơn, điều này đã làm việc cho tôi. Nhưng làm cách nào để xóa an toàn các tệp libicu * .59 đã sao chép? rm /usr/lib/libicu*.59?
Skatox

Cái này cũng có tác dụng với tôi. Cảm ơn, có một upvote.
Vaughan Hilts

2

Bạn cũng có thể sử dụng biến LD_LIBRARY_PATH để tải các thư viện icu từ một vị trí khác. Theo cách này, bạn có thể tránh mọi bản sao thành / usr / lib:

$ mkdir -p ~/pkg/tmp
$ tar xJvf /var/cache/pacman/pkg/icu-59.1-2-x86_64.pkg.tar.xz -C ~/pkg/tmp
$ su
# LD_LIBRARY_PATH=`pwd`/pkg/tmp pacman -U /var/cache/pacman/pkg/icu-59.1-2-x86_64.pkg.tar.xz

Đó là LD_LIBRARY_PATH=`pwd`/pkg/tmp/usr/libtrong trường hợp của tôi.
v_2e

1

Tôi đã nghiên cứu vấn đề và tìm thấy về /var/log/pacman.log. Tôi đọc nhật ký và thấy rằng vấn đề là:

...
[2017-11-28 04:34] [ALPM] upgraded libmariadbclient (10.1.28-1 -> 10.1.29-1)
[2017-11-28 04:34] [ALPM] transaction interrupted

Bản cập nhật đã bị gián đoạn, do đó vấn đề liên kết.

Sau đó tôi đã tải firmware từ đây . Tôi giải nén thư viện bị thiếu:

$ gunzip ArchLinuxARM-rpi-latest.tar.gz
$ tar -tf ArchLinuxARM-rpi-latest.tar |grep libicuuc.so.59
./usr/lib/libicuuc.so.59.1
./usr/lib/libicuuc.so.59
$ tar -xf ArchLinuxARM-rpi-latest.tar ./usr/lib/libicuuc.so.59.1
$ tar -xf ArchLinuxARM-rpi-latest.tar ./usr/lib/libicuuc.so.59

libicuuc.so.59là một liên kết đến libicuuc.so.59.1, vì vậy tôi chuyển libicuuc.so.59.1đến /usr/lib/libicuuc.so.59.

Chạy pacmantôi gặp lỗi mà libicudata.so.59thiếu. Tôi trích xuất thư viện bị thiếu /usr/libpacmanđang làm việc :).

Sau đó tôi đã cập nhật hệ thống pacman -Syuqvà kiểm tra ldd /usr/bin/pacmanxem tất cả các thư viện có mặt. Tôi đã chuyển các thư viện v59 từ /usr/libvà kiểm tra xem nó pacmancó hoạt động không.

Khởi động lại với ngón tay đan chéo ... thành công !!!

pacman -Sc và đi ngủ với một nụ cười :)


1

Trong trường hợp bạn có một tệp thực thi cần phiên bản cụ thể của thư viện (như đã xảy ra trong trường hợp của tôi), có một gói aur cho phiên bản cụ thể đó.


0

Giải quyết vấn đề với pacman -Sc theo sau là pacman -Syyu Không chắc tại sao nó lại giải quyết được vấn đề.


0

Trong hệ thống của bạn lib32-icu không được cài đặt. Chỉ cần cài đặt lib32-icu từ pacman và mọi vấn đề sẽ được giải quyết.

sudo pacman -S lib32-icu

0

Tôi đã giải quyết vấn đề này với sự giúp đỡ của liên kết sau; đây

Theo bài viết này, hạ cấp là một ý tưởng tồi và những gì bạn có thể nên làm là xây dựng lại gói sử dụng phụ thuộc bị thiếu ở trên. Hạ cấp có thể ảnh hưởng đến nhiều gói.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.