Як я можу встановити програмне забезпечення або пакети без Інтернету (офлайн)?


257

У мене є друг, у якого є комп’ютер, який не підключений до Інтернету. Чи можна легко встановити програмне забезпечення в режимі офлайн?


1
Наступне посилання також може бути цікавим для вас. askubuntu.com/questions/86358/…
starkus

Відповіді:


129

Перевірити Keryx ; це офлайн-менеджер сховищ.

Як це працює? Це дозволяє завантажувати оновлення та нові програми (залежно) на свою флешку .

Його інтерфейс схожий на синаптичний, але він працює від маятника (він не потребує встановлення). На жаль, GUI потребує wxwidgets, які не встановлені на Ubuntu (вони є кросплатформенними та інстальованими звідси та репозиторієм Ubuntu тут ). Він може встановлювати програмне забезпечення лише в системі Ubuntu, але ви можете завантажувати оновлення або нові пакети в будь-якому Linux, Windows або OS X.

Тут ви можете знайти підручник .

Ще одна детальна покрокова інструкція - у цій відповіді .

На панелі запуску також розміщуються файли, які можна завантажити .

Скріншот:

Скріншот


12
keryx вже не в стадії розробки, якщо ви намагаєтеся це зробити в новій версії Ubuntu, використовуйте портативну версію, щоб врятувати себе від неприємностей залежностей.
Алекс R

1
Я все ще користуюся keryxбез проблем, хоча явно потребує подальшого розвитку та вдосконалення.
carnendil


Що робити, якщо на іншому автономному комп’ютері немає gcc, g ++? Це свіжий встановлений ubuntu. Як я можу встановити wxwidgets? Без wxwidgets він скаржиться на відсутні модуль ...
пропозиція не може відмовити

3
Щойно я випустив нову версію Keryx ( 0.92.5 ), яка може вирішити деякі проблеми. Скомпільована версія повинна містити такі залежності, як wxWidgets і дозволяти без проблем працювати в Windows.
Майкл Креншо

57

Швидкий злом

Швидкий злом - це скопіювати всі пакунки, які ви завантажили для встановлення, на його машину ( детальні інструкції тут ). Файли .deb зберігаються в /var/cache/apt/archives, потім на іншому комп'ютері запускають Synaptic і вибирають File -> Add Package Downloadedі шукають папку, якщо ви помістили файли та відкрийте їх, прийняти всі (або встановити з терміналу за допомогою команди sudo dpkg -i DEB_PACKAGE_NAME).

ПРИМІТКА.
Це передбачає, що менеджер пакунків не налаштований на видалення пакетів відразу після встановлення. Він також передбачає, що ви використовуєте ту саму версію Ubuntu (10.10, 12.04 тощо) та архітектурну версію (32b або 64b) .


Сховище DVD

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


2
Якщо ви не можете sudo apt-get updateце запустити, це не спрацює, все-таки добре
заощаджуйте

Домовились, щойно оновили два комп’ютери до 13.10 з 13.04. Перший повинен був завантажити ~ 1,8 Гб, копіювання вмісту /var/cache/apt/archivesдо другого змусило його завантажити лише ~ 250 Мб. Тим не менш, для запуску встановлення потрібне з'єднання.
Максим Р.

apt-get updateне потрібно, якщо ви копіюєте /var/lib/apt/lists- цей каталог містить інформацію про сховище, яку завантажує apt-get update.
ignis

Я скопіював мій .debдо мене usbз /var/cache/apt/archives. На іншому комп’ютері я просто відкрив USB-накопичувач і двічі клацнув на .debньому, запустивши графічний інтерфейс Ubuntu Software Updater. Легкий пезик.
Джексонкр

@ jr0cket: Чи є спосіб уникнути пакунків у цій папці, /var/cache/apt/archivesяка вже (вбудована) з'являється при встановленні Debian? Причина, чому я прошу, це 4,8 Гб, занадто великий для мого USB-накопичувача, який становить 4 Гб.
Джастін

42

USB-сховище

Якщо у вас є USB-накопичувач пристойного розміру - якщо припустити, що це близько 4-8 Гбіт (або зовнішній жорсткий диск), ви можете встановити власну копію сховища Ubuntu і налаштувати це як локальне сховище, як охоплене в AptGet / Offline / Repository на help.ubuntu .com

Щоб отримати фактичні файли пакунків (файли .deb), я пропоную використовувати apt-mirror.

apt-mirrorПакет допоможе вам створити для користувача дзеркало , яке повинно бути менше , ніж 30GB повного сховища. Встановіть пакет:

sudo apt-get install apt-mirror

і відредагуйте його файл конфігурації

gksudo gedit /etc/apt-mirror/mirror.list

або з Ubuntu 14.04

gksudo gedit /etc/apt/mirror.list

Включіть лише потрібні розділи сховища. Ось простий приклад, який копіює двійкові файли .deb з усіх 4-х розділів (головний, обмежений, всесвітній та мультисеверний), а також останні виправлення помилок.

# apt-mirror configuration file
##
## The default configuration options (uncomment and change to override)
##
#
set base_path    /tmp/ubuntumirror
#

## Repositories to copy from - 

## use a mirror so you don't overload the main server!!!

# Lucid binaries - no source files
deb http://archive.ubuntu.com/ubuntu lucid main restricted universe multiverse
deb http://archive.ubuntu.com/ubuntu lucid-updates main restricted universe multiverse


## Clean up older .deb files no longer in the archive
clean http://archive.ubuntu.com/ubuntu

Вважається, що вам потрібно буде близько 15 Гб місця для всіх 4 секцій, без джерела.

Я поставив шлях для всіх .deb файлів /tmp, переконайтеся, що у вас є достатньо місця, щоб ваш жорсткий диск не заповнився (якщо ваш жорсткий диск заповнюється, а комп'ютер замерзає, /tmpслід очистити перезавантаження).

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

Якщо ви використовуєте іншу архітектуру (у вас 64-бітова, але у вашого друга 32-бітний), додайте наступне на початку файлу конфігурації mirror.list :

set defaultarch i386

Отримавши потрібну apt-mirrorконфігурацію, запустіть apt-mirrorі зайдіть щось цікаве або зміниться життя, оскільки для отримання сховища знадобиться години чи дні (залежно від вашого підключення та дзеркала Ubuntu, яким ви користуєтесь).

Коли у вас є .deb-файли, скопіюйте файли на накопичувач USB (або зовнішній жорсткий диск) та встановіть локальне сховище відповідно до згаданої статті.

Перевірте, чи працює він, перш ніж взяти його другові!


Інформація про пакет дзеркальних дзеркал детальна за адресою: apt-mirror.sourceforge.net
jr0cket

Коли я спробував sudo apt-get install apt-mirrorпрямо на Ubuntu 16.10 (Yakkety Yak), настільну версію / Rufus / USB-накопичувач / пробний режим, я отримав " E: Unable to locate package apt-mirror". Підключився до Інтернету, підтверджено ping.
Пітер Мортенсен

Біг sudo apt-get updateне виправив.
Пітер Мортенсен

32

Для цього я використовую apt-get з опцією "--print-uris". Я також додаю "-qq", щоб було тихо.

Використовуйте sed, щоб видалити зайві символи, додані до деяких імен файлів (щось на зразок 3% 2a) та отримати url, ім'я файлу та md5sum файлів. Використовуйте wget для завантаження файлів. Використовуйте md5sum, щоб перевірити правильність завантаження файлів.

Ви можете використовувати це для створення скрипта оболонки для Linux або Mac OS (замініть ".cmd" в командах на .sh і зробіть "chmod a + x (ім'я файлу), щоб додати дозвіл на виконання сценарію) або пакетний файл команди Command Windows. та файл MD5Sum, щоб переконатися, що файли завантажено правильно.

Команди

Створити сценарій:

sudo apt-get <<<apt-get command and options>>> --print-uris -qq | sed -n "s/'\([^ ]\+\)' \([^ ]\+\) \([^ ]\+\) MD5Sum:\([^ ]\+\)/wget -c \1/p" > script.cmd

Приклади:

sudo apt-get install anjuta --print-uris -qq | sed -n "s/'\([^ ]\+\)' \([^ ]\+\) \([^ ]\+\) MD5Sum:\([^ ]\+\)/wget -c \1/p" > install-anjuta.cmd
sudo apt-get upgrade --print-uris -qq | sed -n "s/'\([^ ]\+\)' \([^ ]\+\) \([^ ]\+\) MD5Sum:\([^ ]\+\)/wget -c \1/p" > upgrade.cmd
sudo apt-get dist-upgrade --print-uris -qq | sed -n "s/'\([^ ]\+\)' \([^ ]\+\) \([^ ]\+\) MD5Sum:\([^ ]\+\)/wget -c \1/p" > dist-upgrade.cmd

Створіть файл md5sum:

sudo apt-get <<<apt-get command and options>>> --print-uris -qq | sed -n -e "s/_[0-9]%[0-9a-f][0-9a-f]/_/" -e "s/'\([^ ]\+\)' \([^ ]\+\) \([^ ]\+\) MD5Sum:\([^ ]\+\)/\4  .\/\2/p" > md5sum.txt

Приклади:

sudo apt-get install anjuta --print-uris -qq | sed -n -e "s/_[0-9]%[0-9a-f][0-9a-f]/_/" -e "s/'\([^ ]\+\)' \([^ ]\+\) \([^ ]\+\) MD5Sum:\([^ ]\+\)/\4  .\/\2/p" > md5sum.txt
sudo apt-get upgrade --print-uris -qq | sed -n -e "s/_[0-9]%[0-9a-f][0-9a-f]/_/" -e "s/'\([^ ]\+\)' \([^ ]\+\) \([^ ]\+\) MD5Sum:\([^ ]\+\)/\4  .\/\2/p" > md5sum.txt
sudo apt-get dist-upgrade --print-uris -qq | sed -n -e "s/_[0-9]%[0-9a-f][0-9a-f]/_/" -e "s/'\([^ ]\+\)' \([^ ]\+\) \([^ ]\+\) MD5Sum:\([^ ]\+\)/\4  .\/\2/p" > md5sum.txt

Для завантаження файлів вам потрібна md5sum для Windows.


Створіть сценарій для завантаження списків сховищ:

sudo apt-get update --print-uris -qq | sed -n "s/'\([^ ]\+\)' \([^ ]\+\) \([^ ]\+\) :/wget -c \1 -O \2.bz2/p" > update.cmd

Перевірка сум MD5

Ви можете додати їх до кінців скриптів, щоб перевірити md5sum:

Linux:

md5sum --quiet -c md5sum.txt

Windows (використовує старіший md5sum, не підтримує - тихо):

md5sum -c md5sum.txt

Для автоматичного додавання до сценарію:

echo -e "md5sum -c md5sum.txt\npause" >> script.cmd

Встановлення спискових файлів (команда оновлення)

Виконайте ці команди на цільовому комп'ютері.

Вам потрібно використовувати bunzip2 для витягування файлів списку сховищ:

bunzip2 *.bz2

Потім скопіюйте у папку з переліком (поточна папка містить лише файли списку):

sudo cp * /var/lib/apt/lists/

Вище комбінований (поточна папка може містити інші файли):

for listfile in `ls *.bz2`; do bunzip2 $listfile; sudo cp ${listfile%.bz2} /var/lib/apt/lists/; done

Швидше завантаження

Якщо ви хочете швидше завантажувати файли, спробуйте скористатися Axel.

Замініть wget -c ... -O ...на axel ... -o ....

Ієрархія папок (Завантаження файлів за допомогою Windows)

Я зазвичай створюю папку, як це:

  • вдало /
    • бункер /
      • msys-1.0.dll
      • msys-intl-8.dll
      • wget.exe
      • msys-iconv-2.dll
      • md5sum.exe
      • libeay32.dll
      • libintl3.dll
      • libssl32.dll
      • libiconv2.dll
    • оновлення /
      • update.cmd
      • md5sum.txt
    • встановити /
      • встановити-foo.cmd
      • встановити-bar.cmd
      • upgrade.cmd
      • md5sum.txt

Потім змініть wgetрядки вище до ..\\bin\\wget.exe, md5sumна ..\\bin\\md5sum.exeтощо.

Це відокремить файли * .deb та перелічить файли у різні папки.

Оновлення вашої системи

  1. Завантажте цільовий комп'ютер, який використовує Ubuntu
  2. Створіть сценарій для оновлення
  3. Завантажте комп'ютер з підключенням до Інтернету
  4. Запустіть update.sh (для Linux або Mac OS) або update.cmd (Windows)
  5. Поверніться до цільового комп’ютера
  6. Встановіть список файлів
  7. Створіть сценарій для оновлення / dist-upgrade (додайте команди md5sum до кінця)
  8. Поверніться до комп'ютера з підключенням до Інтернету
  9. Запустіть upgrade.sh/dist-upgrade.sh (Linux або Mac OS) або upgrade.cmd / dist-upgrade.cmd (Windows)
  10. Поверніться до цільового комп’ютера
  11. Скопіюйте * .deb файли в кеш: sudo cp *.deb /var/cache/apt/archives/
  12. Виконати: sudo apt-get upgradeабоsudo apt-get dist-upgrade

Завантажити виконувані файли для Windows

Wget для Windows: http://gnuwin32.sourceforge.net/packages/wget.htm

md5sum для Windows: http://gnuwin32.sourceforge.net/packages/coreutils.htm або http://www.etree.org/cgi-bin/counter.cgi/software/md5sum.exe

Ви також можете використовувати ті з MinGW , якими я користуюся. Вам потрібні лише wget.exe, md5sum.exe і необхідні спільні бібліотеки. Перевірте розділ «Ієрархія папок».

Примітки

  • Я не зовсім впевнений, чи спрацюють усі вищезгадані команди, оскільки я не користувався ними вже місяць. Особливо команда оновлення, яку я сьогодні не перевіряв деякі її частини.
  • Щоб легко побачити результати команд, додайте рядок "пауза" в кінці скриптів, якщо використовується Windows.
  • Я рекомендую створювати скрипти для оболонки для оновлення, оновлення та встановлення пакунків, якщо ви часто використовуєте ці команди.

3
Чи можете ви створити для цього простий гуй :)
Tachyons

використання Windows для цього здається дуже дивним ...
Alex R

1
Це також застосовно до Linux (що насправді краще, тому що вам не потрібно встановлювати md5sum та wget). Частина Windows призначена для тих, хто не має комп’ютера Linux з підключенням до Інтернету, тому ви можете використовувати його в Інтернет-кафе або на комп'ютері друга, у якого є тільки Windows.
Арнель А. Борха

-qqз'являється опція, щоб придушити весь вихід з apt-get update. Я припускаю, що ви не дуже хочете цього варіанту.
Руслан

29

Спочатку потрібно придбати ПК з підключенням до Інтернету, куди ви можете завантажити потрібні файли .deb. Після завантаження всіх файлів тепер ви можете створити компакт-диск / DVD-диск або файл ISO, який можна використовувати для установки програмного забезпечення, яке ви завантажили у свій автономний ПК.

Почніть з чистої установки або VM.
sudo apt-get install aptoncd

Встановіть потрібні пакети на один ПК
sudo apt-get install gbrainy

Запустіть aptoncd
введіть тут опис зображення
Клацніть Створити
введіть тут опис зображення
натисніть Запис і встановіть параметри, а потім застосувати
введіть тут опис зображення
Запис або збережіть його
введіть тут опис зображення

Зауважте, що aptoncd створює резервну копію лише речей у поточному кеш-програмі.
Ось чому ми почали з чистої VM / нової установки та зробили все це за один пробіг.


Sooo, ви кажете, якщо я зроблю vm та встановлю всі потрібні програми, то запустіть цю програму, перейміть CD / DVD на офлайн-ПК. і він встановив би всі додатки на ньому?
Олексій

2
Доки ви використовуєте один і той же базовий системний носій, так. Якщо ви розгортаєте офіс і хочете швидкий і простий спосіб додати щось, то це стане дуже корисним. Якщо ви використовуєте create-meta пакет, так
RobotHumans

Відновлення з зображення вимагає встановлення hal, але воно застаріле і більше не підтримується, наскільки я розумію.
Flashrunner

Існує збірка для яскравого коду.launchpad.net
~ubuntu-

22

Офлайн-сховище

Як створити автономне сховище, описано тут : Вам просто потрібно завантажити відповідні файли з archive.ubuntu.com . Можна також скористатися apt-medium.

EDIT: Інший підхід, заснований на локальному архіві *.debфайлів, описаний у різних записах блогу (див. Тут і тут ). Сарат Чандра підсумовує наступне:

  1. Зробіть доступним dir (принаймні за корінь)

    sudo mkdir /var/my-local-repo
    
  2. Скопіюйте всі файли deb в цей каталог.

  3. Зробіть каталог як

    sudo bash -c 'dpkg-scanpackages /var/my-local-repo /dev/null | gzip -c9 > /var/my-local-repo/Packages.gz'
    

    або

    sudo dpkg-scanpackages /var/my-local-repo /dev/null | gzip -c9 > /var/my-local-repo/Packages.gz
    
  4. Додайте локальне репо до джерел

    echo "deb file:/var/my-local-repo ./" > /tmp/my-local.list
    sudo mv /tmp/my-local.list /etc/apt/sources.list.d/my-local.list
    sudo apt-get update
    

20

Крок 1. Отримайте URL-адреси для завантаження у файл:

Виконайте наступну команду, замінивши імена пакетів на потрібні, розділяючи пробіл.

apt-get -y install --print-uris package-name | cut -d\' -f2 | grep http:// > apturls

Крок 2. Скопіюйте цей файл (apturls) на машину, яка має швидкісний доступ до Інтернету, та виконайте наступну команду для завантаження пакетів:

wget -i path-to-apturls-file 

Крок 3: Тепер отримайте завантажені пакети на свою машину та встановіть їх за допомогою:

cd path-to-the-downloaded-packages-directory

sudo dpkg -i *.deb

Готово!


Чи --print-urisдрукує навіть залежності, які вже встановлені в системі?
юрій

19

Можна використовувати Куб . Це портативний менеджер пакунків, який дозволяє завантажувати пакунки на інший підключений до Інтернету комп’ютер та встановлювати їх назад на свій оригінальний комп'ютер Linux, в автономному режимі.

Завантаження програм (у Windows)

Встановлення програм (у Linux)

Ви можете завантажити його на веб-сайті Cube .


це .deb чи .exe?

2
Файлу .deb немає, оскільки він є окремим, портативним та може бути виконаний без встановлення (просто запустіть файл з нормальним кубом). Cube.exe також включений для користувачів Windows.
Camicri

1
Про це потрібно знати більше людей. Я тебе люблю.
howderek

Я отримую помилку під час роботи цієї програми на win 7 Ultimate 32 біт. Зображення: i.stack.imgur.com/XW3wt.jpg Повідомлення про помилку: Підпис проблеми: Назва проблеми: CLR20r3 Підпис проблеми 01: cube.exe Підпис проблеми 02: 1.0.9.3 Підпис проблеми: 03: 54bd0258 Підпис проблеми: 04-glib-остро Проблемна підпис 05: 2.12.0.0 Проблема Підпис 06: 517edc4c Проблема Підпис 07: 1b4 Проблема Підпис 08: 17 Підпис проблеми Програма 09: System.DllNotFoundException ОС Версія: 6.1.7600.2.0.0.256.1 Ідентифікатор локалі: 16393
Sandeep

Привіт і дякую за використання Cube. На жаль, версія куба, яку ви використовуєте, більше не підтримується. Будь-ласка, використовуйте новий та стабільний сервер Cube: запуск.net/cube-server. Дивіться оновлену відповідь вище.
Camicri

17

У синаптичному варіанті ви можете вибрати пакети, які ви хочете встановити, і під першим меню є можливість генерувати сценарій, який ви можете перенести на іншу машину і запустити там. Цей скрипт "wget" (тобто "завантажувати") всі вказані вами пакунки (та їх залежності), які ви запускаєте на комп'ютері, який має доступ до Інтернету.

Після запуску ви отримаєте всі файли пакунків, необхідні відключеному комп'ютеру. Перенесіть їх на CD / USB флешку та встановіть їх sudo dpkg -i *.deb.


це приємний трюк, але 2 комп'ютери, щоб зробити процес? hmmmm
Suhaib

@Suhaib - не впевнений, як би ти завантажив необхідні пакети в будь-якій мірі без "двох комп’ютерів" ... вам потрібна "онлайн" машина, щоб отримати пакунки, які ви якось надішлете на вашу автономну машину (навіть якщо це VM або контейнер Docker, який працює на іншій хост- curlwget
операції, або купі

15

Ви можете використовувати apt-offlineабо apt-offline-gui.
Попередні реквізити : система друга з підключенням до Інтернету. apt-offline встановлений в обох ваших системах.

Установка в режимі офлайн досягається в 3 простих кроки.

Крок 1 :
Створіть файл підпису у відключеному вікні Debian у домашніх умовах.
apt-offline set /tmp/apt-offline.sig
Наведена вище команда генерує всю інформацію, необхідну для влучного оновлення бази даних.

Крок 2 :
Завантажте дані на основі створеного раніше файла підпису.
apt-offline get C:\apt-offline.sig --threads 5
Наведена вище команда завантажить дані, як зазначено у файлі підписів. Щоб пришвидшити завантаження (це може бути з декількох сприятливих сховищ), у цьому прикладі ми породжуємо 5 ниток завантаження.
Після завершення ви можете просто скопіювати дані (архівний файл, якщо ви використовували параметр --bundle) назад на знімний носій та скопіювати його на хост-офлайн.

Крок 3 :
Після повернення на домашню машину Debian ви передаєте дані зі знімного носія в apt-offline:
apt-offline install /media/USB/apt-offline.zip
Це дозволить безперервно оновити базу даних APT на відключеній машині.

Apt-offline можна використовувати навіть у системах Windows. На мою думку, apt-offlineце найкращий варіант для встановлення в режимі офлайн.

Джерело


Два спостереження: По-перше, генерування підпису для вже встановленого або готового до встановлення пакету "провалюється" в тому сенсі, що .sig-файл порожній. Це трохи неприємно, але, мабуть, нормально. По-друге, apt та apt-offline працюють правильно лише в тому випадку, якщо / var / lib / apt / списки були належним чином засіяні. Це досить велика робота, якщо цільові та хост-машини мають різні архітектури.
Urhixidur

Чи потрібно як вихідному, так і цільовому ПК мати однакову версію Ubuntu?
Tulains Córdova

Як встановити apt-offline на автономну машину?
Самі şimşekli

10

Вище перераховано кілька хороших, ефективних відповідей. Однак це я механізм, який я особисто використовую - apt-ftparchive . Я документую це тут, на випадок, якщо він мені знову знадобиться. Можливо, це може бути вам корисним.

Створення знімка архіву

  • Створіть екземпляр Ubuntu, який тісно імітує цільове середовище
    • Наприклад, 64-розрядний екземпляр Ubuntu 12.04 в Amazon
  • Почніть з чистого середовища для упаковки
    • sudo apt-get clean
  • Оновіть списки пакетів
    • sudo apt-get update
  • Завантажте всі наявні оновлення пакета
    • sudo apt-get dist-upgrade --download-only
  • Завантажте всі відповідні пакети та залежності
    • sudo apt-get install --download-only byobu run-one bikeshed dotdee powernap
  • Встановіть утиліту apt-ftparchive
    • sudo apt-get install apt-utils
  • Створіть маніфест пакету
    • (cd /var/cache/apt/archives/ && sudo apt-ftparchive packages . ) | sudo tee /var/cache/apt/archives/Packages
  • Створіть архів пакетів
    • sudo tar cvf snapshot.tar -C /var/cache/apt archives/

Використання Знімка архіву в автономній цільовій системі

  • Через деякий механізм вам потрібно буде отримати snapshot.tar з джерела до цільової системи. Можливо, на USB-накопичувачі чи іншим чином.
  • Витягніть архів у цільову систему (у цьому випадку в / home / ubuntu)
    • tar xvf snapshot.tar
  • Додайте локальне, офлайн-джерело до /etc/apt/sources.list
    • echo "deb file:/home/ubuntu/archives /" | sudo tee -a /etc/apt/sources.list
  • Оновіть список пакетів
    • sudo apt-get update
  • Встановіть пакети за бажанням
    • sudo apt-get install byobu run-one bikeshed dotdee powernap

4

Для офлайн-установки вам знадобляться пакети. Якщо ви використовуєте систему Debian

  • Отримайте файл пакету з .debрозширенням файлу та використовуйте dpkg -i package_nameдля його встановлення
  • Отримайте вихідний tarball з розширенням .tar.gzабо .tar.bz2файл, а потім витягніть та встановіть їх за допомогою:

    tar -zxvf your_pack.tar.gz` or tar `-jxvf your_pack.tar.bz2
    make
    sudo make install
    make clean        (optional, and may prevent uninstallation)
    

У вас можуть виникнути проблеми із залежностями. Вам потрібно встановити всі перші, щоб успішно встановити офлайн.


2

Так. Ви можете завантажити DVD-диск iso, записати його на DVD та встановити програмне забезпечення з DVD. Дивіться тут компакт-диски та DVD-диски можуть бути надані як джерело менеджерам пакетів так само, як і онлайн-архіви.


2

Перше, що ви могли зробити перед встановленням офлайн-пакету - оновити сховище / сховища, які вам потрібні. Вам напевно сподобається оновлений репозиторій Main (для безкоштовного та офіційно підтримуваного програмного забезпечення).

Додатки, які ви хочете встановити, можуть знаходитися в інших сховищах, таких як Всесвіт (безкоштовна, але офіційна підтримка не має), або Обмежений (не вільний, офіційно підтримується), або сховище Multiverse (не вільна, жодна офіційна підтримка) . Тож ви можете також захотіти одне або декілька.

Отже, перший крок у процесі - це створення оновленого автономного сховища; потім генеруйте список "для завантаження" та завантажуйте їх, і, нарешті, перезапис. Ось як це робиться: джерело

  1. Введіть URL: http://archive.ubuntu.com/ubuntu/dists/ suiteCodename, де suiteCodename має бути відповідним чином замінено, скажімо, точне для Ubuntu 12.04 (Precision Pangolin) [або утопічне для Ubuntu 14.10 (Utopic Unicorn)], щоб ви тепер перейдіть на сторінку http://archive.ubuntu.com/ubuntu/dists/precise/ або будь-яку іншу специфіку для вашої програми.

  2. Завантажте файли Release , Release.gpg та Contents - файл gz для вашої архітектури (тобто Contents-i386.gz , якщо вважати , що для вас архітектура i386). Збережіть ці три файли в каталозі / папці, названому за вашим назвою suiteCodename ( точно для точного Pangolin).

  3. Далі вам доведеться виконати наступне для кожного із сховищ (серед головних, всесвітів, обмежених, мультисеверних ).

    а. перейдіть до каталогу цільового репозиторію, наприклад. головний, а потім до каталогу архітектури, наприклад. binary-i386, щоб ви були в http://archive.ubuntu.com/ubuntu/dists/suiteCodename/repositoryName/binary-????/

    б. завантажте вміст Packages.bz2, Packages.gz, випустіть і збережіть їх у каталозі, названому по імені сховища, наприклад. головна та розмістіть цей каталог у створеній раніше директорії suiteCodename .

    c. повторити а. і b. для кожного із сховищ, які ви хочете.

  4. Нарешті, у вас повинна бути така структура:

     precise
     ├── Contents-i386.gz
     ├── main
     │   └── binary-i386
     │       ├── Packages.bz2
     │       ├── Packages.gz
     │       └── Release.txt
     ├── Release.gpg
     ├── Release.txt
     └── universe
         └── binary-i386
             ├── Packages.bz2
             ├── Packages.gz
             └── Release.txt
    

    (припустимо, що ваше suiteCodename = точне, архітектура - i386, і вам потрібні основні та універсальні сховища)

  5. Далі, після завантаження оновлених сховищ, ви розміщуєте завантажені файли, розташовані у належній структурі (як показано вище) у каталозі цільового офлайн-комп'ютера. Збережіть структуру каталогів preciseу папці з назвою offlineRepository / dists / точно у вашому домі користувача ( ~/offlineRepository/dists/precise) або деінде ( /home/offlineRepository/dists/preciseвикористовуючи привілеї sudo в терміналі або за допомогою розпочатого з Nautilus файлового менеджера gksu nautilus; також переконайтеся, що у вас є правильні дозволи для скопійованої структури) . Інформація про ваше автономне сховище буде готова до використання.

  6. Додайте локальний сховище у свій список джерел . За допомогою програмного центру Ubuntu перейдіть до меню Правка -> Джерела програмного забезпечення ... -> Інше програмне забезпечення -> Додати ..., а потім у полі для рядка APT додайте: deb file:///home/offlineRepository precise main universeта натисніть кнопку Додати джерело . Будьте впевнені, що ви змінили рядок у своїй каталозі / структурі файлу та наборі. Потім перезавантажте пакети або запустіть sudo apt-get updateу терміналі. оснащення1

  7. Тепер із оновленими (і, мабуть, нещодавно доданими сховищами) ви можете скинути список URL-адрес для пакетів та залежностей.

    Я запозичую наступний рядок коду з однієї з попередніх публікацій askUbuntu:

    sudo apt-get install packageName --print-uris | grep -o '\'http.*\' | tr "\'" " " > /tmp/package-list.txt
    

    напр. встановити Synaptic Package Manager:

    sudo apt-get install synaptic --print-uris | grep -o '\'http.*\' | tr "\'" " " > /tmp/package-list.txt
    

    (Ви також можете генерувати списки оновлень аналогічним чином.)

    Створений список можна використовувати для завантаження пакета та всіх залежностей на онлайн-комп’ютері. Створіть сценарій для завантаження або використання списку для пакетного завантаження в деяких менеджерах завантажень. (Також зауважте, що генерований текстовий файл використовує закінчення рядка Unix / Linux, і який, можливо, ви хочете змінити в Windows.) Раніше це було простішим способом, коли Synaptic Package Manager був програмою за замовчуванням в Ubuntu.

  8. Нарешті, у цільовій системі ви можете встановити пакети за dpkgдопомогою або будь-яким іншим способом.

Отримання оновленої бази даних пакетів, включаючи оновлення безпеки

Наступна структура, крім вищезгаданого пояснення, повинна дати вам ідею:

/opt/offlineRepoList/
└── dists
    ├── precise
    │   ├── Contents-i386.gz
    │   ├── main
    │   │   └── binary-i386
    │   │       ├── Packages.bz2
    │   │       ├── Packages.gz
    │   │       └── Release.txt
    │   ├── Release.gpg
    │   ├── Release.txt
    │   └── universe
    │       └── binary-i386
    │           ├── Packages.bz2
    │           ├── Packages.gz
    │           └── Release.txt
    ├── precise-security
    │   ├── Contents-i386.gz
    │   ├── main
    │   │   └── binary-i386
    │   │       ├── Packages.bz2
    │   │       ├── Packages.gz
    │   │       └── Release
    │   ├── Release
    │   ├── Release.gpg
    │   └── universe
    │       └── binary-i386
    │           ├── Packages.bz2
    │           ├── Packages.gz
    │           └── Release
    └── precise-updates
        ├── Contents-i386.gz
        ├── main
        │   └── binary-i386
        │       ├── Packages.bz2
        │       ├── Packages.gz
        │       └── Release
        ├── Release
        ├── Release.gpg
        └── universe
            └── binary-i386
                ├── Packages.bz2
                ├── Packages.gz
                └── Release

2

Після перегляду відповідей тут: Як я можу встановити програмне забезпечення або пакети без Інтернету (офлайн)? , Я знайшов цей код Арнеля А. Борха найкориснішим.

sudo apt-get install PACKAGE --print-uris -qq | sed -n "s/'\([^ ]\+\)' \([^ ]\+\) \([^ ]\+\) MD5Sum:\([^ ]\+\)/wget -c \1/p" > install.sh


У будь-якому випадку, ось кілька інструкцій для повних новачків. Я сподіваюся, що ви знайдете їх корисними.

Повні інструкції щодо завантаження інших користувачів Ubuntu 15.10+:

  1. Відкрийте термінал (ярлик CTRL + ALT + T)
  2. Перейдіть до папки, в яку ви хочете завантажити пакет, використовуючи команду:

    cd FOLDERNAME
    (Приклад: cd Desktop)
    Порада: Ви також можете використовувати dirкоманду , щоб переглянути папки.

  3. У коді вище інструкцій замініть ПАКЕТ на той пакет, який ви хочете завантажити.
  4. Скопіюйте та вставте змінений код (ярлик CTRL + SHIFT + V) та натисніть Enter

    Приклад коду для завантаження Synaptic Package Manager:
    sudo apt-get install synaptic --print-uris -qq | sed -n "s/'\([^ ]\+\)' \([^ ]\+\) \([^ ]\+\) MD5Sum:\([^ ]\+\)/wget -c \1/p" > install.sh

    Приклад коду для завантаження плеєра VLC:
    sudo apt-get install vlc --print-uris -qq | sed -n "s/'\([^ ]\+\)' \([^ ]\+\) \([^ ]\+\) MD5Sum:\([^ ]\+\)/wget -c \1/p" > install.sh

  5. За запитом введіть кореневий пароль та натисніть Enter. (Не панікуйте, якщо символи пароля не відображаються. Це лише заходи безпеки.)
  6. Файл "install.sh" повинен бути створений. Усі необхідні залежності включаються в сценарій.
  7. Тепер нам потрібно запустити скрипт з цією командою:
    sh install.sh
  8. Дочекайтеся завантаження файлів
  9. Після цього ви можете скористатися цією командою для встановлення всіх пакетів у папці:

    sudo dpkg -i *.deb

    Або ви можете використовувати таку програму, як Synaptics для встановлення пакетів. (Synaptics: File - Додати завантажені пакети)
    Крім того, ви можете просто двічі клацнути файли. Це відкриє програмний центр Ubuntu. Після завантаження програмного центру натисніть кнопку встановлення. Повторіть це, поки не будуть встановлені всі файли в папці.


2

У мене є невеликий скрипт python, який можна запустити в Windows, який аналізує веб-сайт пакету ubuntu, щоб знайти дерево залежності та завантажити всі необхідні пакети + зробити перевірку контрольної суми.

Це, очевидно, може завантажити більше, ніж потрібно, але для мене було найпростішим рішенням.

https://gist.github.com/Zitrax/2bad212a3b0571357e1b

Після цього всі завантажені пакети можна встановити за допомогою dpkg -i E pkg\*. Це дозволяє уникнути перевстановлення пакетів, які вже встановлені.

Використання:

usage: ubuntu-deps.py [-h] [-a ARCH] [-r RELEASE] [-m MIRROR] [-f FALLBACK] [-d DIRECTORY] dep [dep ...]

Download ubuntu dependencies

positional arguments:
  dep                                  The main/top package

optional arguments:
  -h, --help                           show this help message and exit
  -a ARCH, --arch ARCH                 The architecture to use (default: amd64)
  -r RELEASE, --release RELEASE        Ubuntu release (default: trusty)
  -m MIRROR, --mirror MIRROR           Mirror to use for download (default: http://no.archive.ubuntu.com/)
  -f FALLBACK, --fallback FALLBACK     Mirror to use when main mirror is not found (default:
                                       http://security.ubuntu.com/)
  -d DIRECTORY, --directory DIRECTORY  Target directory (default: pkg)

2

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

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

Ця відповідь мотивована повторюваним запитанням g ++ в Ubuntu 14.04 і використовує випадок необхідності встановлення g++як основний приклад.

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

Хоча цей метод може виглядати складним, він займає лише кілька хвилин. Для пакетів з великою кількістю залежностей це може зайняти більше часу. Для встановлення метапакетів, які охоплюють дуже велику кількість залежностей (наприклад, ubuntu-desktopв мінімальній системі), може знадобитися набагато більше часу, щоб завантажити всі необхідні файли .deb, і цей метод навряд чи буде підходящим.

Визначення необхідних залежностей

Ви можете імітувати встановлення, щоб визначити, які інші пакети необхідні для задоволення залежностей пакета. Передача -sпрапора apt-get( перед тим, як вказати будь-яку дію) робить це.

apt-get -s install g++

Я опустив sudo, оскільки це просто моделювання, тому кореневі привілеї не потрібні.

Якщо ви дійсно хочете встановити всі найпоширеніші інструменти для складання пакунків, а не просто g++, ви можете:

apt-get -s install build-essential

Вихід (для g++) буде виглядати приблизно так:

NOTE: This is only a simulation!
      apt-get needs root privileges for real execution.
      Keep also in mind that locking is deactivated,
      so don't depend on the relevance to the real current situation!
Reading package lists... Done
Building dependency tree       
Reading state information... Done
The following extra packages will be installed:
  g++-4.8 libstdc++-4.8-dev
Suggested packages:
  g++-multilib g++-4.8-multilib gcc-4.8-doc libstdc++6-4.8-dbg
  libstdc++-4.8-doc
The following NEW packages will be installed:
  g++ g++-4.8 libstdc++-4.8-dev
0 upgraded, 3 newly installed, 0 to remove and 0 not upgraded.
Inst libstdc++-4.8-dev (4.8.2-19ubuntu1 Ubuntu:14.04/trusty [amd64])
Inst g++-4.8 (4.8.2-19ubuntu1 Ubuntu:14.04/trusty [amd64])
Inst g++ (4:4.8.2-1ubuntu6 Ubuntu:14.04/trusty [amd64])
Conf libstdc++-4.8-dev (4.8.2-19ubuntu1 Ubuntu:14.04/trusty [amd64])
Conf g++-4.8 (4.8.2-19ubuntu1 Ubuntu:14.04/trusty [amd64])
Conf g++ (4:4.8.2-1ubuntu6 Ubuntu:14.04/trusty [amd64])

Це говорить про те, що для установки g++на моїй системі, мені потрібні пакети g++, g++-4.8і libstdc++-4.8-dev.

За результатами моделювання зазвичай краще, ніж просто шукати залежність пакета (або припускати, що те, що вам потрібно, те саме, що вище), тому що:

  1. Можливо, ви вже встановили деякі залежності.
  2. Самі залежності (тобто інші пакети, які потрібно встановити або працювати), можуть мати залежності, які ви ще не встановили.

Отримання пакетів

Коли ви дізнаєтеся, які пакунки вам потрібні, ви можете їх завантажити. Я пропоную використовувати для цього Launchpad, оскільки завантаження зашифровано SSL, що допомагає запобігти пошкодженню файлів.

  • Це не просто гарантія від навмисних маніпуляцій зловмисною стороною; це також допомагає запобігти випадковій пошкодженню файлів, що є набагато частішою проблемою для завантажених файлів.
  • Є один вид, який не заважає: коли файл завантажується лише частково, але ви вважаєте, що це закінчено.
  • Як правило, для встановлення пакету apt-getабо в Центрі програмного забезпечення не потрібно HTTPS, оскільки його хеш перевіряється відповідно до цифрового підписаного списку хешів. Якщо ви в кінцевому підсумку помістите ці пакунки в кеш-пакет ваших пакетів і використовуєте їх apt-getдля встановлення, це станеться.
  • Але якщо вам доведеться встановлювати завантажені вручну пакети dpkg -i, це не буде зроблено.

Ви можете шукати пакет, ввівши його назву в розділі Пакети за адресою https://launchpad.net/ubuntu та натиснувши "Знайти пакет". Наприклад, пошук g++-4.8приведе вас до сторінки вихідного пакета gcc-4.8 .

Потім прокрутіть униз до кодового імені випуску Ubuntu. Ви біжите 14.04, тож це надійний Тар. Кодові назви для всіх релізів Ubuntu перелічені на сторінці вікі випусків . Клацніть правокутний трикутник, щоб переглянути завантаження пакета для нього.

скріншот із зображенням прямокутного трикутника, за допомогою якого можна розширити реліз, щоб побачити завантаження

Для деяких пакетів ви можете розширити списки завантажень з більш ніж однієї кишені . Ви можете побачити:

  • випуск , версія пакета, що постачається з випуском Ubuntu (або доступний на момент випуску);
  • безпеку , оновлення безпеки відправлено після звільнення;
  • оновлення , будь-які оновлення, що постачаються після випуску;
  • запропоновані оновлення, які можна встановити, але вони все ще проходять тестування і не рекомендуються для загального використання;
  • backports , програмне забезпечення, що витікає з більш пізнього випуску Ubuntu та перебудоване для більш раннього випуску.

Наприклад, ось що доступно для Firefox 14.04:

Скріншот Launchpad, що показує розширюваний вибір завантаження пакетів для кількох кишень в одному випуску

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

Після розширення списку пакунків знайдіть .debфайл для вашої архітектури. Назви названі . Найпоширеніші архітектури:name_version_architecture.deb

  • 64-бітний ПК / Mac (викликається amd64як для процесорів Intel, так і для AMD)
  • 32-бітний ПК / Mac (називається i386також для обох)

Наприклад, щоб отримати g++-4.8пакет для 64-бітної версії Ubuntu, ви можете завантажити g++-4.8_4.8.4-1ubuntu15_amd64.deb.

Встановлення пакетів

Якщо пакети , які ви видобувні ту ж версія , що apt-get«s installдію буде вже автоматично витягується і встановлюється (якщо система була підключена до мережі), то ви можете помістити пакети /var/cache/apt/archivesі просто запустити цю команду:

sudo apt-get install g++

Якщо ця система ніколи не була підключена до Інтернету, то, мабуть, це буде той випадок, коли всі отримані вами пакунки були з кишені випуску . Незалежно від того, була система коли-небудь підключена до Інтернету, це також майже завжди буде так, якщо на Launchpad не було показано жодних пакунків у будь-яких інших кишенях. (По суті, єдиною ситуацією цього не стане, якщо ви встановили альфа-або бета-систему і ніколи не оновлювали її.)

У конкретному випадку встановлення g++, я б використав apt-get.

У випадках, коли це не працює або ви очікуєте, що цього не вийде, встановіть пакунки, помістивши їх у іншу порожню папку та запустивши:

sudo dpkg -Ri /path/to/folder

Або ви можете назвати пакети окремо. Цей приклад припускає, що пакети знаходяться в поточному каталозі (тобто, ви перейшли cdв каталог, що містить їх):

sudo dpkg -i package1.deb package2.deb ...

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


1

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

Ви можете отримати всю операційну систему Ubuntu через пошту, оплативши DVD. Так само, як ви можете попросити онлайн-друга, щоб він надіслав вам файли DEB або навіть вихідні файли для пакета, наприклад VLC. Хоча, можливо, варто, щоб хтось надсилав повний DVD із усіма пакунками. Таким чином ви можете встановити його з цього DVD.


0

Це не зовсім детальна відповідь, але на високому рівні ви могли:

  1. отримати потрібні .deb pkgs (і створити їх список) (включити пакунки, від яких вони залежать, які ще не встановлені)
  2. створити влучний архів, який їх містить
  3. скопіюйте підходящий архів на CD або USB
  4. вставити компакт-диск або USB в цільову систему
  5. конфігуруйте apt в цільовій системі, щоб включати CD або USB apt архів як джерело
  6. встановіть пакунки зі свого списку за допомогою apt-get install (список pkgs)

0

Я пропоную налаштувати живі компакт-диски та встановити їх.

Ви також можете завантажувати файли на ім’я файлу http://packages.ubuntu.com/ , але тоді вам також потрібно звернути увагу на залежності.


(Спочатку це була відповідь на дещо інше питання, яке злилося з цим.)
Якоб

Робота, що вбиває час
тотті

0

Інша можливість - використовувати ремастери. Цей інструмент дозволяє зробити ізо-зображення із власної системи, і після створення завантажувальної USB-палички через unetbootin ви можете встановити налаштовану систему на стільки комп’ютерів, які ви хочете.


Але як оновлювати їх згодом?
Елія Каган

0

У мене є кілька простих пропозицій. Можна зайти до бібліотеки. Подивіться в розділі комп'ютера потрібну операційну систему, деякі книги мають всередині DVD. Також, якщо ви хочете найсучаснішої операційної системи, я рекомендую цей веб-сайт, де ви зможете придбати DVD за номінальну плату. www.ubuntu.com/download/desktop.


0

Це запитання трохи старе, тому відповідь наразі може бути зайвою, але, можливо, ви також можете спробувати використовувати dpkg-offline . Встановіть bzr, а потім:

bzr branch lp:dpkg-offline

там підручник та файл readme включений туди.

Припускаючи, що ви хочете встановити git в системі Ubuntu 14.04 amd64, навіть якщо ваша система є, наприклад, 12.04 i386, ви можете:

  • завантажити зображення ubuntu-14.04-desktop-amd64.iso
  • Біжи dpkg-offline ubuntu-14.04-desktop-amd64.iso git
  • Ви отримаєте tar.gz, який зможете транспортувати до цільової системи, він буде містити пакет насіння (git) та всі його залежності. Він також включає допоміжний скрипт для додавання локального сховища, тому ви можете використовувати apt-getдля встановлення ваших пакетів.

dpkg-offline буде працювати з будь-якою версією для настільних комп'ютерів Ubuntu з 10.04 і далі (я не тестував старіші версії, але вони також повинні працювати), і з будь-якою версією сервера Ubuntu з 12.10. Він також повинен працювати з amd64, i386 та armhf зображеннями незалежно від архітектури хоста. Знову ж таки, я не проходив тестування на arm64 або powerpc / ppc64el, але вони також можуть працювати.

Відмова: Я написав dpkg-offline.


Це чудово, проте я думаю, що надмірно завантажувати весь дистрибутив для використання сценарію, хотілося б, щоб це спрацювало, лише вказавши необхідні пакети та цільовий дистрибутив
Хав'єр Лопес

0

Деякі пакети встановлені на установці usb-stick. Я видалив network-managerі хочу встановити його знову.

Таким чином я отримав палицю, з якої я встановив операційну систему (Lubuntu 17.10). Це було/dev/sdb

Встановити палицю на доріжці ( /tmp/mntв моєму випадку)

mkdir /tmp/mnt
sudo mount /dev/sdb1 /tmp/mnt

Потім я редагую /etc/apt/sources.listлише, щоб містити

deb file:///tmp/mnt/ main universe

Тоді я

sudo apt-get update

І я можу встановити network-manager.

Примітка. Це може бути не відповідь на вищезазначене питання, а на запитання, яке було у мене під час пошуку цього питання.


1
Ви, ймовірно, повинні створити резервну копію, sources.listа потім відновити її.
Чай Т. Рекс
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.