Как я могу приостановить / возобновить процесс обновления apt-get в терминале?


20

Мой Интернет иногда приостанавливается из-за изменения мощности сигнала 3g, и я должен снова запустить весь процесс обновления apt-get! Каждое обновление потребляет 13-15 мегабайт и каждый мегабайт стоит здесь !! Могу ли я сделать что-то, чтобы приостановить обновление, чтобы возобновить его после повторного подключения к Интернету! PS - я знаю, что я могу возобновить загрузку приложений / обновления


Итак, почему именно вы хотите сделать паузу? это только для того, чтобы вы могли очистить файлы пакета, которые загружаются для установки? Если это так, просто используйте команду clean, которую я изложил ПОСЛЕ того, как вы запустили установку программного обеспечения, она очистит пространство, занимаемое установщиками загруженных пакетов.
Томас Уорд

@ EvilPhoenix Нет. Это не для этого. Дело в том, что если на последнем шаге моего обновления разрывается соединение, я теряю 14 МБ, потому что мне нужно запустить его снова! и мое интернет-соединение основано на данных .. поэтому я не могу позволить себе потерять данные без необходимости!
avi

@amith, чтобы пометить ответ как ответ, щелкните галочку рядом с ответом @jgbelacqua.
theTuxRacer

@Kaustubh, но его правильный ответ не является реальным ответом! Это комментарий к другому ответу !!
avi

как получается, что каждое обновление занимает 13-15мб? Вы работаете с предварительной версией? Новое обновление должно занять всего несколько 100 кБ.
user1974

Ответы:


25

Глядя на рекомендации по использованию Ctrl+ C, я думаю, что было бы лучше попробовать Ctrl+ Zприостановить процесс в фоновом режиме, когда / если сеть падает. Возможно, вы сможете fgвозобновить работу после восстановления подключения. (Хотя я не знаю, насколько надежен apt-get в этом сценарии.)

Еще одна возможность будет использовать axelи apt-fastсценарий. Он объявлен как ускоряющий загрузку, выполняя параллельные загрузки, но он также хорошо отслеживает то, что уже было загружено, предположительно потому, что он должен отслеживать фрагменты файла при его загрузке в параллельных порциях.

Вот оригинальная ветка от Ubuntuforum .


Может ли axel / apt-fast отслеживать обновление apt-get? это может сделать паузу?
avi

@amith - Что касается приостановки axel / apt-fast, существует возможность приостановки, но я не знаю, является ли механизм именно тем, что вам нужно.
Белаква

кто сделал отрицательное голосование? Я проголосовал за тебя!
AVI

5

Вы можете остановить загрузку пакетов или обновление системы, нажав «Ctrl + C» и остановив программу. Это полностью остановит программу. В следующий раз, когда вы попробуете эту же команду, apt-get возобновит загрузку с того места, где она остановилась в прошлый раз.


@Amith Это возобновит пакеты, но не обновление! Обновление начинается снова!
avi

1
Было бы лучше попробовать Ctrl-Z, чтобы приостановить процесс в фоновом режиме, если сеть обрывается - вы можете использовать его fgдля возобновления после восстановления подключения. Не знаю, насколько надежен apt-get в этом сценарии.
Белаква

1
@jgbelacqua эй !! это работает .. как я могу отметить это как ответ ??
avi

@amithv - я добавил комментарий в начало моего исходного ответа, так как он, кажется, работает. Я очень рад, что это помогает.
belacqua

5

Сначала приостановите эту работу. приостановить работу:

Ctrl + z 

для повторного запуска задания при получении сигналов сети:

для запуска на переднем плане, используйте

fg %1 

для запуска в фоновом режиме, используйте

 bg %1 

По крайней мере, в bash вам не нужно указывать %1for fgили bg, по крайней мере, если он был просто приостановлен.
Xen2050

4

Как мой aptitudeсказал мне после неожиданной перезагрузки, используйте:

sudo dpkg --configure -a

И как man dpkgобъясняет:

Если вместо пакета указано -a или --pending, то все распакованные, но ненастроенные пакеты будут настроены.


2

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


-1

Я не люблю терминал. Никто не знает, возможно ли это с помощью терминала или нет. Но есть плохой способ сделать то, что вы просили. Для этого вам понадобится «Менеджер пакетов Synaptic». Если у вас его нет, то сначала установите его. Теперь, если он у вас есть, откройте его; Нажмите «Пометить все обновления». Это вызовет все обновляемые (обновляемые) пакеты. Теперь начинайте скачивать пакеты, пока ваше соединение не будет потеряно. Если соединение потеряно, Synaptic пожалуется на это и прекратит обновление. Не беспокойтесь, закройте менеджер синаптических пакетов. (Не открывайте Центр программного обеспечения и не используйте apt-get через командную строку, пока не завершится обновление.)

Теперь после повторного подключения запустите synaptic снова. И снова нажмите «Пометить все обновления» и начните обновление. На этот раз вы увидите, что загружаются только те пакеты, которые не удалось загрузить, а другие пропускаются.

Это не очень хорошее решение, но оно работает. Если синаптический или программный центр жалуется на какую-то «блокировку», перейдите в / var / cache / apt / archives и удалите файл «lock», и вам будет хорошо :)


Еще кое-что. Не держите обновления в ожидании в течение нескольких дней. Поскольку Canonical выпускает более новые обновления, ваши уже загруженные файлы устаревают.
Любопытный ученик
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.