Trên Gentoo, làm cách nào để xây dựng lại tất cả các gói phụ thuộc vào một số gói khác?


7

Tôi đã mắc lỗi và thay đổi perl phiên bản không có luồng thành luồng bằng cách hủy nhập trước, thay đổi USEcờ để bao gồm ithreads và xuất hiện lại perl. Bây giờ hầu hết các gói tùy thuộc vào perl bị hỏng. Làm thế nào để tôi xây dựng lại chúng?

Câu trả lời:


7

Trên đường đi là sử dụng equery's dependschức năng để có được danh sách những thứ mà phụ thuộc vào một gói.

# equery depends perl

Nếu bạn muốn xây dựng lại tất cả chúng, hãy thử một cái gì đó như:

# emerge -a --oneshot `equery depends perl|awk '{print " ="$1}'`

Bạn sẽ gặp vấn đề với điều đó nếu bạn đã cài đặt các gói đã bị xóa khỏi cây portage, do đó, đồng bộ hóa và cập nhật thế giới trước đó là một ý tưởng tốt.

Đối với trường hợp cụ thể này, bạn cũng có thể muốn xem xét app-admin/perl-cleaner- nó có các tính năng cụ thể để xây dựng lại các mô-đun perl.


3

Hãy thử sử dụng revdep-rebuild(từ app-portage/gentoolkitgói, giống như equery). Nó là một công cụ quét hệ thống cho các phụ thuộc bị hỏng (như các thư viện chia sẻ bị thiếu) và xây dựng lại các gói đã bị hỏng phụ thuộc. Một lợi thế của phương pháp này so với phương pháp của Mat là trong hầu hết các trường hợp, bạn không cần phải xây dựng lại tất cả các gói phụ thuộc vào một số gói khác.


1
revdep-rebuildlà điều đầu tiên tôi đã thử, nhưng nó không thể xử lý trường hợp này vì thư viện (libperl.so) có mặt nhưng thiếu một số biểu tượng.
AlexD

1
Hmm, lạ - tôi nghĩ rằng nó đã xử lý USEthông tin phụ thuộc chính xác. Dù sao, vì nó là một vấn đề với perl, có một công cụ đặc biệt cho công việc đó : app-admin/perl-cleaner.
rozcietrzewiacz

Tôi đã thử perl-cleaner --allnhưng nó không được xây dựng vimlại libperl.so.
AlexD

1
Nếu vim vẫn bị hỏng sau đó, bạn nên nộp báo cáo lỗi.
rozcietrzewiacz

Nhưng hãy chắc chắn rằng nó thực sự là - chỉ vimphụ thuộc vào perl nếu nó được xây dựng với perluseflag! (Đó cũng là một lý do tại sao phương pháp của Mat có thể buộc phải xây dựng lại quá nhiều.)
rozcietrzewiacz
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.