Чи можу я зробити так, щоб до-реліз-оновлення завантажував лише пакети для подальшого оновлення?


33

Я працюю lubuntu 10.10, і хотів би оновити до 11.04. У мене дуже темпераментне підключення до Інтернету, тому я хотів би завантажити всі пакунки перед запуском установки.

Згідно з цим , не існує простого способу зробити це. Звіт про помилку, згаданий у цій темі, все ще відкритий.

Моє запитання: Чи є спосіб зламати do-release-upgrade для завантаження лише пакетів, як-от додавання "-d" в apt-get dist-upgrade?

Або це зробити вручну єдиним способом отримати бажаний результат?

Якщо мені доведеться це зробити вручну, ці кроки необхідні для цього чи я щось пропускаю?

  1. Вимкнення сторонніх сховищ у /etc/apt/sources.listта/etc/apt/sources.list.d
  2. Змінення сховищ /etc/apt/sources.listз maverickна вnatty
  3. бігати sudo apt-get update
  4. запустіть sudo apt-get -d dist-upgradeлише для завантаження пакетів. Робіть це стільки разів, скільки потрібно, поки не завантажуються всі пакунки.
  5. запустіть, sudo apt-get dist-upgradeщоб завершити процес оновлення

Це здається близьким до того, що я зробив би.
Жо-Ерленд Шінстад

Відповіді:


13

Ваші перші чотири кроки є правильними, але крок 5 повинен бути sudo do-release-upgrade(замість sudo apt-get dist-upgrade). Слід зауважити, що всі (або більшість) пакетів, які він збирався завантажити, вже є у /var/cache/apt/archives.

У деяких попередніх версіях до-реліз-оновлення була помилка, яку вона очищала /var/cache/apt/archivesперед завантаженням пакетів заново, але IIRC цю помилку виправлено.


Я це зробив, і це спрацювало.
Менахем

дивіться, як це зробити за допомогою графічного інтерфейсу тут: askubuntu.com/a/418789/21794
Menachem

Чи корисний процес, описаний у запитанні, для переходу з однієї LTS на іншу? У мене працює сервер 12.04, який я хотів би підняти до 14.04, але, можливо, не буде шансу повністю підготуватися до оновлення до того, як 12.04 репортаж буде видалено пізніше цього місяця.
dgw

9

Я написав сценарій, щоб це зробити, для власного оновлення декількох машин до Ubuntu 14.04 "довірливо". Це називається "apt-get-other-release". Просте використання:

$ sudo apt-get-other-release -t trusty
  [ a long time passes as it downloads stuff ]
$ sudo apt-get-other-release -U
  [ it prepares the system for upgrade -- this is quick ]
$ sudo do-release-upgrade   # or update-manager, whatever you're comfortable with
  [ upgrading also takes a long time and may still download some additional stuff ]

Сценарій знаходиться за адресою:

ftp://www.lubkin.com/pub/user/filbo/apt-get-other-release

і версія 1.0 має sha1sum: 87a466b2bb2d1ac5b0a08509246a450b8d1c7617

За лаштунками він в основному працює apt-get update; apt-get -d dist-upgradeз власним приватним набором файлів source.list. Результати зберігаються у / var / cache / apt- $ to_rel / archives, а прапор '-U' копіює їх у загальносистемний / var / cache / apt / архіви, щоб вони були присутні під час оновлення.

Ви також можете скопіювати архів оновлення з одного локального хоста на інший, зберігаючи пропускну здатність. Я зробив це для оновлення amd64 та i386, копіюючи лише ті * .deb, які не мали "amd64" у своїх іменах; потім побіг іншийapt-get-other-release -t trusty машину i386, яка завантажила ще одну велику купу пакетів, оскільки на двох машинах було встановлено різні речі.

Відгуки оцінені; поштовий куб. см., як я не знаю, коли я буду дивитись на askubuntu. Пошукові системи мене добре знають.

ПРИМІТКА: Я фактично не здійснив оновлення системи, обробленої так! Деякий час на наступному тижні. Вихід із цього сценарію, хоча він може бути корисним для людей.

> Бела <


6

Існує спосіб змусити менеджера оновлень виконати кроки 1-3 для вас.

  1. Запустити sudo update-managerз вікна терміналу в графічному інтерфейсі (це важливо)

    • Запустіть менеджер оновлень, скажіть, що ви хочете оновити до наступної версії Ubuntu, і нехай він почне працювати. Це вимкне сторонні сховища, змінить основні сховища на останню версію, а потім запуститьsudo apt-get update для вас.
    • Потім він з’явиться на екрані, який повідомляє вам, що для запуску оновлення доведеться видалити, встановити та оновити пакети.
    • На цьому етапі перейдіть до вікна терміналу і примусово закрийте програму за допомогою CTRL-C. [Якщо цього не зробити і скасувати оновлення за допомогою кнопки скасування менеджера оновлень, зміни відновляться].
  2. запустіть sudo apt-get -d dist-upgradeз командного рядка стільки разів, скільки потрібно, доки всі пакунки не будуть завантажені та готові до встановлення

  3. запустіть sudo do-release-upgradeі дозвольте завершити оновлення вже завантаженими пакетами.

  4. Повторно ввімкніть сторонні сховища та запустіть sudo apt-get update && sudo apt-get upgradeзнову, щоб оновити сторонні сховища до останньої версії (переконайтеся, що сховища оновлені до останнього випуску ubuntu)


2

Я також написав сценарій для цього, який ви можете знайти на сайті

https://github.com/neldredge/fetch-release-upgrade

Використання: у каталозі подряпин запустіть

 ./fetch-release-upgrade.sh trusty

або будь-який новий випуск, до якого ви хочете оновити. Необхідні пакети будуть завантажені у підкаталог, який називається debs. Потім ви можете перемістити їх до /var/cache/apt/archivesзапускуdo-release-upgrade .

Я ще не переглянув сценарій user270294, але це здається, що він працює в аналогічних напрямках і може мати ще кілька функцій.


2

Наступна трохи коротша версія відповіді Менахема працювала на мене:

  1. Запустіть sudo do-release-upgradeв одному вікні терміналу, зачекайте, поки підкаже:

    Do you want to start the upgrade? 
    
    ...
    
    Fetching and installing the upgrade can take several hours. Once the 
    download has finished, the process cannot be canceled. 
    
    Continue [yN]  Details [d]
    

    Не підтверджуйте, залишайте відкритим

  2. У другому вікні термінала запустіть sudo apt-get dist-upgrade --download-only

  3. Закінчивши, продовжуйте або припиняйте дозвілля у першому вікні терміналу

Порада: встановіть термінальний мультиплексор типу screenта запустіть його do-release-upgradeвсередині. Потім ви зможете знову підключитися з тим, screen -D -RRщо трапиться з терміналом, який показує процес оновлення. (На щастя, моє оновлення сьогодні було майже завершеним ...)


це хороший спосіб зробити це, але він може вийти з ладу, якщо вам доведеться вимкнути комп’ютер посередині.
Менахем

@Menachem: Дякую Що ви маєте на увазі під "провалом", чи можете ви детально розробити? Так, джерела APT, ймовірно, будуть у непослідовному стані, але крім цього?
krlmlr

Я не пробував цього, тому не знаю точно, що б сталося. Я просто думав, що тому, що коли ви скасуєте do-release-upgrade, це скасує зміни, але ви використовуєте найновіші apt-джерела для завантаження оновлень, ви можете виявити нестабільну систему при спробі повторного оновлення. пізніше.
Менахем

Я не впевнений, що лише завантаження інсталяційних файлів щось змінить, чи це не просто кешування файлів з Інтернету? У будь-якому випадку цей процес спрацював для мене добре, і я перервав, після чого перезавантажився do-release-upgradeпісля завантаження.
krlmlr

1
так. до тих пір, поки ви не спробуєте запустити регулярне оновлення, поки не закінчите, ви повинні бути добре.
Менахем

0

Відмова: Я ніколи цього не робив. Це може бути жахлива ідея. Це може зламати все, випорожнити ваші банківські рахунки та втекти на південь Іспанії. Як і у випадку з будь-яким потенційно небезпечним, зробіть резервну копію, перш ніж робити що-небудь.


Я не впевнений, скільки матеріалів ви встановили, тому це може бути хибним рішенням, але ви можете оновити з CD. Завантажте альтернативний iso, встановіть його та запустіть сценарій оновлення.

wget -c http://releases.ubuntu.com/11.04/ubuntu-11.04-alternate-amd64.iso

Перш ніж піти далі, вам не потрібно використовувати wget, щоб отримати зображення. Bittorrent буде добре працювати зі стандартним менеджером завантажень. Важливим є те, що ви хочете щось відновити, тому ви можете припинити завантаження та забрати його в інший час. Це те wget, що -cбуде робити прапор.

Після отримання ISO, наступний крок досить простий:

sudo mount -o loop ubuntu-11.04-alternate-amd64.iso /media/cdrom
sudo sh /media/cdrom/cdromupgrade

Недолік, про який я говорив, полягає в тому, що це лише оновлення речей, що є інтегральним для Ubuntu, які містяться на компакт-диску. Він не оновить ваші інші пакети.

В теорії це повинно бути добре. Ви можете виявити, що деякі програми зламаються, деякі можуть бути примусово видалені оновленням, але основна ОС повинна залишатися стабільною.

Якщо моя теорія вірна, це дозволить вам оновити інші ваші пакети, використовуючи як і коли ви хочете через Synaptic або (якщо ви встановите його) aptitude.


Що робити, якщо південь Іспанії ближче?
Метт Столяр
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.