Вопрос: Как переустановить пакет с помощью apt-get?


Кажется, что мой aptitude как-то сломано

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]

поэтому я хотел бы переустановить aptitude используя apt-get

К сожалению, похоже apt-get не имеет опции переустановки.

Любые идеи, как я мог бы снова обрести способность работать?

редактировать : Возможно, я нашел основную причину segfault aptitude. Вот как я могу воспроизвести его:

  1. ssh удаленный вход в машину debian через терминал rxvt cygwin (из 64-битной версии Windows-7).
  2. увеличьте окно rxvt так, чтобы оно охватывало два монитора (да, у меня есть два монитора)
  3. бег aptitude update, Примечание: когда я изменяю размер rxvt-терминала до нормального, тогда у меня нет этих segfault!

167
2018-01-30 00:20


Источник




Ответы:


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

Поэтому, чтобы использовать его для переустановки aptitude использовать:

sudo apt-get install --reinstall aptitude

280
2018-01-30 01:29



что это -A5 вы - grepping? - Vokuhila-Oliba
мужчина grep | grep - "-A" - grawity
Что это -- вы горели? - Desty
man getopt, смотрите под PARSING - Tino
-A5 показывает согласованную линию плюс следующие 5 строк. -- останавливает синтаксический анализ опций, таким образом интерпретируя все, что возникает после позиционных аргументов, избегая необходимости избегать тире в выражении -A который в противном случае был бы истолкован как вариант для grep. - jjmontes


Вы можете переустановить пакет с помощью sudo apt-get install --reinstall packagename, Это полностью удаляет пакет (но не пакеты, зависящие от него), а затем переустанавливает пакет.

Это может быть удобно, когда пакет имеет много обратных зависимостей.


98
2017-07-18 19:45



Спасибо, что являетесь единственным правильным, полным, не-snarky ответом. - Cerin
@Cerin: Я бы не назвал другие ответы слишком заурядными: даже «прочитать справочную страницу» на самом деле дал ответ, а также как его найти. - David Spillett
@DavidSpillett, я категорически не согласен. Человеческие страницы, как правило, очень плохо написаны и очень недружелюбны к новичкам. Например, в параграфе параметра «--reinstall» не упоминается, что вы должны использовать его с аргументом «install». Новичок может по праву спросить: «Почему я должен сказать, чтобы установить и переустановить?» Ответ, говорящий кому-то в RTFM, является наихудшим ответом, и мне больно видеть его с большинством голосов, особенно когда полный и действительно полезный ответ находится внизу. - Cerin


Вы должны быть в безопасности, чтобы удалить aptitude и переустановить, так как это не повлияет на другие утилиты apt. Так: apt-get remove aptitude с последующим apt-get install aptitude, или если это все еще не удается apt-get purge aptitude с последующим apt-get install aptitude,

Прежде чем делать что-либо из вышеперечисленного, я рекомендую полную файловую систему и проверку плохих блоков в случае возникновения проблемы, вызвавшей эту проблему (в зависимости от проблемы, если таковая имеется, дальнейшая деятельность может ухудшить ситуацию). Кроме того, убедитесь, что вы просмотрели, что будет удалено на этапе удаления / очистки, прежде чем разрешить его (он должен приостановить запрос на получение разрешения, если что-то дополнительно изменится в результате удаления этого пакета), чтобы дважды проверить, что это безопасно.


12
2018-01-30 00:26



Большое спасибо! apt-get remove с последующим apt-get install сделал трюк! - Vokuhila-Oliba
Давно я делал такие вещи, как a full filesystem check или похожие. Не могли бы вы дать мне короткий намек на это? - Vokuhila-Oliba
fsck -f <block_device> такие как fsck /dev/sda1, В то время файловая система должна быть размонтирована или смонтирована только для чтения, так как это, скорее всего, ваша корневая файловая система, вы должны перезагрузиться в однопользовательском режиме или загрузиться с чего-то другого, например, с живого компакт-диска. - David Spillett
Вы можете использовать tune2fs чтобы отметить файловую систему как смонтированную больше, чем ее установленный предел, который должен принудительно проверить следующую загрузку. Предполагая, что файловая система ext2 / 3/4: tune2fs -C 99 <device>, или если у вас включена проверка на основе подсчета количества подключений, включите ее одновременно с чем-то вроде tune2fs -c 17 -C 99 <device>, - David Spillett
touch / forcefsck; перезагрузка - user23307


Иногда вам также нужно восстановить файлы конфигурации! а не просто переустановить.

sudo apt-get install --reinstall xxxx

Переустановите приложение, сохраните файлы конфигурации.

Это может быть полезно, но иногда вам нужно начинать новый, так что я использую это:

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

тогда

sudo apt-get install xxxx

12
2017-08-20 05:39



И если вам нужно только восстановить файлы конфигурации, в некоторых случаях (если они управляются ucf), вы должны использовать UCF_FORCE_CONFFMISS=1 apt-get --reinstall install [pkgname], - Skippy le Grand Gourou