Câu hỏi Làm thế nào để cài đặt lại một gói bằng apt-get?


Có vẻ như tôi aptitude bằng cách nào đó bị hỏng

sudo aptitude update
0% [Working]Segmentation fault

dmesg
[223282.616599] aptitude[30972]: segfault at 67707f ip 7f954dcfae5d sp 7ffff5a5f950 error 4 in libapt-pkg-libc6.7-6.so.4.6.0[7f954dca5000+bd000]

vì vậy tôi muốn cài đặt lại aptitude bằng cách sử dụng apt-get

Thật không may có vẻ như apt-get không có tùy chọn cài đặt lại.

Bất kỳ ý tưởng làm thế nào tôi có thể nhận được aptitude để làm việc một lần nữa?

Chỉnh sửa : Có thể tôi đã tìm ra nguyên nhân gốc rễ cho sự phân đoạn của aptitude. Đây là cách tôi có thể tái tạo nó:

  1. ssh đăng nhập từ xa vào máy debian thông qua thiết bị đầu cuối rxvt của cygwin (từ phiên bản 64 bit của Windows 64 bit).
  2. phóng to cửa sổ rxvt để mở rộng trên hai màn hình (vâng tôi có hai màn hình)
  3. chạy aptitude update. Lưu ý: khi tôi thay đổi kích thước các thiết bị đầu cuối rxvt bình thường sau đó tôi không có những segfaults!

167
2018-01-30 00:20


gốc




Các câu trả lời:


$ man apt-get | grep reinsta -A2
       --reinstall
           Re-Install packages that are already installed and at the newest
           version. Configuration Item: APT::Get::ReInstall.

Vì vậy, để sử dụng nó để cài đặt lại aptitude sử dụng:

sudo apt-get install --reinstall aptitude

284
2018-01-30 01:29



đó là gì -A5 bạn đang grepping? - Vokuhila-Oliba
người đàn ông grep | grep - "-A" - grawity
Cái gì thế -- bạn đang grepping? - Desty
man getopt, nhìn xuống dưới PARSING - Tino
-A5 hiển thị đường phù hợp cộng với 5 dòng sau. -- dừng phân tích cú pháp các tùy chọn, do đó giải thích bất kỳ điều gì xảy ra sau khi các đối số vị trí, tránh phải thoát khỏi dấu gạch ngang trong biểu thức -A mà nếu không sẽ được hiểu là một lựa chọn để grep chính nó. - jjmontes


Bạn có thể cài đặt lại gói có sudo apt-get install --reinstall packagename. Điều này hoàn toàn loại bỏ các gói (nhưng không phải là các gói phụ thuộc vào nó), sau đó cài đặt lại gói.

Điều này có thể thuận tiện khi gói có nhiều phụ thuộc ngược lại.


99
2017-07-18 19:45



Cảm ơn bạn vì câu trả lời chính xác, đầy đủ, không phải là câu trả lời. - Cerin
@Cerin: Tôi sẽ không gọi những câu trả lời khác quá ngớ ngẩn: ngay cả khi "đọc trang người đàn ông" thực sự đã đưa ra câu trả lời cũng như cách tìm ra câu trả lời. - David Spillett
@ DavidSpillett, tôi mạnh mẽ không đồng ý. Các trang người đàn ông thường được viết rất kém và rất không thân thiện với người mới. Ví dụ, đoạn trên tùy chọn "--reinstall" không đề cập đến việc bạn phải sử dụng nó với đối số "install". Một người mới có thể hỏi một cách hợp pháp "tại sao tôi phải yêu cầu cài đặt và cài đặt lại?" Một câu trả lời nói với ai đó về RTFM là loại câu trả lời tồi tệ nhất và tôi cảm thấy đau lòng khi thấy nó có nhiều phiếu nhất, nhất là khi một câu trả lời đầy đủ và thực sự hữu ích ở gần đáy. - Cerin


Bạn nên an toàn để loại bỏ aptitude và cài đặt lại, vì điều đó sẽ không ảnh hưởng đến các tiện ích apt khác. Vì thế: apt-get remove aptitude theo dõi bởi apt-get install aptitudehoặc nếu vẫn thất bại, hãy thử apt-get purge aptitude theo dõi bởi apt-get install aptitude.

Trước khi thực hiện một trong các bước trên, tôi khuyên bạn nên kiểm tra toàn bộ hệ thống tệp và kiểm tra khối xấu trong trường hợp có sự cố xảy ra ở đó (tùy thuộc vào sự cố, nếu có sự cố, hoạt động tiếp theo có thể khiến mọi thứ tồi tệ hơn). Ngoài ra, hãy chắc chắn bạn xem xét những gì sẽ bị xóa trong bước xóa / thanh lọc trước khi cho phép tiến hành (cần tạm dừng để yêu cầu sự cho phép nếu có thêm bất kỳ thay đổi nào do xóa gói đó), để kiểm tra lại suy nghĩ của tôi rằng an toàn.


12
2018-01-30 00:26



Cảm ơn rất nhiều! apt-get remove theo dõi bởi apt-get install đã làm các trick! - Vokuhila-Oliba
Đó là một thời gian dài trước đây tôi đã làm những việc như a full filesystem check hoặc tương tự. Bạn có thể vui lòng cho tôi một gợi ý ngắn làm thế nào để làm điều đó? - Vokuhila-Oliba
fsck -f <block_device> nhu la fsck /dev/sda1. Hệ thống tập tin sẽ cần phải được unmounted hoặc gắn kết chỉ đọc vào thời điểm đó vì đây có thể là hệ thống tập tin gốc của bạn, bạn nên khởi động lại vào chế độ đơn người dùng hoặc khởi động từ một cái gì đó khác như một cd sống. - David Spillett
Bạn có thể dùng tune2fs để đánh dấu hệ thống tập tin như đã được gắn kết nhiều lần hơn giới hạn đã đặt của nó, điều đó sẽ buộc một kiểm tra khởi động tiếp theo. Giả sử hệ thống tập tin là ext2 / 3/4: tune2fs -C 99 <device>hoặc trong trường hợp bạn đã tắt tính năng kiểm tra dựa trên tính năng gắn kết, hãy bật tính năng này cùng lúc với một cái gì đó như tune2fs -c 17 -C 99 <device>. - David Spillett
chạm / forcefsck; khởi động lại - user23307


Đôi khi bạn cần phải khôi phục tập tin cấu hình quá! không chỉ cài đặt lại.

sudo apt-get install --reinstall xxxx

Cài đặt lại ứng dụng, giữ các tập tin cấu hình.

Điều này có thể hữu ích, nhưng đôi khi bạn cần phải bắt đầu mới, vì vậy những gì tôi sử dụng là:

sudo dpkg -r xxxx //to remove that xxxx package
sudo dpkg -P xxxx //to purge all related files

sau đó

sudo apt-get install xxxx

12
2017-08-20 05:39



Và nếu bạn chỉ cần khôi phục các tệp cấu hình, trong một số trường hợp (nếu chúng được quản lý bởi ucf), bạn nên sử dụng UCF_FORCE_CONFFMISS=1 apt-get --reinstall install [pkgname]. - Skippy le Grand Gourou