The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

форумы  помощь  поиск  регистрация  майллист  вход/выход  слежка  RSS
"Раздел полезных советов: Перенос пакетов с зависимостями меж..."
Вариант для распечатки  
Пред. тема | След. тема 
Форумы Разговоры, обсуждение новостей (Public)
Изначальное сообщение [ Отслеживать ]

"Раздел полезных советов: Перенос пакетов с зависимостями меж..."  +/
Сообщение от auto_tips (ok) on 07-Дек-09, 14:35 
Столкнулся с вопросом: как установить программу в debian/ubuntu без интернета. Дело в том, для переноса уже установленных программ используют aptoncd, который делает мини-репозиторий из кэша пакетов. Но как быть если кэш чистился и в нем лежат не все необходимые пакеты? Или необходимо принести программу на ubuntu а на компьютере стоит Debian ? Да и архитектур много.

Для получения пакетов со всеми зависимостями для установки на конкретную машину нам понадобится файл "/var/lib/dpkg/status" с исходной машины. В нем содержится список установленных пакетов и их состояние. На целевой системе не должно быть пакетов, установленных с ошибками иначе apt откажется работать.

Если нужно использовать альтернативный sources.list, то его следует создать. Затем создаем директорию, где будет наш кэш и директорию partial в ней. Далее дело техники.

Получаем список пакетов из soutce.list:

   sudo apt-get -o Dir::State::status='наш файл status' -o Dir::Cache::archives="куда кладем пакеты" \
     -o Dir::Etc::sourcelist="файл sources.list" -o APT::Architecture "архитектура" update

Создаем кэш:

   sudo apt-get -d -o Dir::State::status='наш файл status' -o Dir::Cache::archives="куда кладем пакеты" \
     -o Dir::Etc::sourcelist="файл sources.list" -o APT::Architecture "архитектура" install <нужные пакеты>

В результате в подготовленной директории появятся все пакеты, которые необходимы для установки указанных пакетов на нужную нам машину, которые мы определяем в мини-репозиторий с помощью aptoncd.


URL:
Обсуждается: https://www.opennet.ru/tips/info/2241.shtml

Высказать мнение | Ответить | Правка | Cообщить модератору

Оглавление

Сообщения по теме [Сортировка по ответам | RSS]

1. "Перенос пакетов с зависимостями между Debian-based дистрибут..."  +/
Сообщение от iZEN (ok) on 07-Дек-09, 14:35 
Для примера, как это делается на FreeBSD:

1. Устанавливаем ПО и попутно создаём бинарные пакеты в каталоге /usr/ports/packages/All/

portupgrade -p port_name

2. Копируем каталог с бинарными пакетами /usr/ports/packages/All/ на флэшку или делаем доступным в сети по NFS.

3. Устанавливаем новые пакеты на целевой машине:

pkg_add -r /mnt/packages/All/port_name-version.tbz

или

4. Обновляем уже установленные пакеты на новые версии (локальное дерево портов должно быть синхронным с той машиной, откуда скопировали пакеты):

env PKG_PATH=/mnt/packages/All/ portupgrade -aiPP

где "i" - интерактивно; "PP" — исключительно бинарное обновление без сборки из исходников.

Итого: никакие репозитории не нужны. Есть каталог с бинарными пакетами, который обновляется централизованно. Предыдущие версии пакетов из этого каталога не удаляются, так что можно откатиться на предыдущую версию какого-то ПО (pkg_delete -f pkg_name-failversion && pkg_add -f pkg_name-goodversion).

Высказать мнение | Ответить | Правка | ^ | Наверх | Cообщить модератору

2. "Перенос пакетов с зависимостями между Debian-based дистрибут..."  +/
Сообщение от Crazy Alex (??) on 07-Дек-09, 18:40 
Угу. Только в оригинальном посте речь о другой ситуации - в аналогии с FreeBSD это будет "бинарные пакеты не создавали или стерли". Во фре в этом случае вообще получится перенести ТОЧНО то, что есть на первой машине, на вторую? В дебиане это грантируется как раз бинарностью пакетов. А на фре придется второй раз собирать - и не факт, что получишь тот же самый результат.
Высказать мнение | Ответить | Правка | ^ | Наверх | Cообщить модератору

3. "Перенос пакетов с зависимостями между Debian-based дистрибут..."  +/
Сообщение от Аноним (??) on 07-Дек-09, 22:04 
E: Значение параметра APT::Architecture должно иметь вид =<val>

E: Архивный каталог /home/xen/<имя_пакета>/partial отсутствует.

E: Не удалось открыть файл /var/lib/apt/<пакет> status - open (2: No such file or directory)

E: Списки пакетов или status-файл не могут быть открыты или прочитаны.

Короче пользоваться невозможно, нужно оформить в виде скрипта, можно даже без гуя. пока продолжаю пользоваться семью вытянутыми двд-образами.

Высказать мнение | Ответить | Правка | ^ | Наверх | Cообщить модератору

4. "Перенос пакетов с зависимостями между Debian-based дистрибут..."  +/
Сообщение от xwild on 08-Дек-09, 08:31 
В подобном случае пользовался apt-mirror,
правда выкачивать полное зеркало довольно долгое занятие, в моем случае оно было у локального провайдера.
Для убунты занимало около 45 гб примерно год назад,
конфиг в /etc/apt/mirror.list,
выглядит как sources.list + дополнительные параметры, типа архитектуры, локального каталога куда сохранять и количества потоков.
Высказать мнение | Ответить | Правка | ^ | Наверх | Cообщить модератору

5. "Перенос пакетов с зависимостями между Debian-based дистрибут..."  +/
Сообщение от Vitto email on 08-Дек-09, 13:46 
Знак "=" действительно забыл.

Я же русским я зыком написал
> создаем директорию, где будет наш кэш и директорию partial в ней

Эта надпись говорит о том, что apt не нашел указанный тобой файл.

Ну и четвертая ошибка следует из третей.

Еще раз уточню, что файл "/var/lib/dpkg/status" надо брать с машины на которую несем пакеты для установки.

Высказать мнение | Ответить | Правка | ^ | Наверх | Cообщить модератору

6. "Перенос пакетов с зависимостями между Debian-based дистрибут..."  +/
Сообщение от Vitto email on 08-Дек-09, 13:49 
До недавнего времени этим методом и пользовался. Он мне не нравился т.к. не очень удобно - для установки нескольких прог пставлять по очереди несколько DVD, читать список пакетов, выбирать софт, а потом еще раз вставлять эти диски, чтоб забрать пакеты.
Высказать мнение | Ответить | Правка | ^ | Наверх | Cообщить модератору

7. "Перенос пакетов с зависимостями между Debian-based дистрибут..."  +/
Сообщение от Гость on 08-Дек-09, 17:12 
> Для примера, как это делается на FreeBSD:

А как то же самое сделать в случае разных архитектур? А если устанавливать скачиваемый софт на подключённой к Интернету системе нельзя?

Высказать мнение | Ответить | Правка | ^ | Наверх | Cообщить модератору

8. "Перенос пакетов с зависимостями между Debian-based дистрибут..."  +/
Сообщение от Filosof_ email on 08-Дек-09, 21:38 
Где ж Вы были 2 года назад? -:)
Теперь у ня и домашний инет справляется.
А так с работы было неудобно таскать.
Высказать мнение | Ответить | Правка | ^ | Наверх | Cообщить модератору

9. "Перенос пакетов с зависимостями между Debian-based дистрибут..."  +/
Сообщение от Vitto email on 09-Дек-09, 15:11 
Если б я сам это знал, то поставил бы Ubuntu на домашней машине на 3 года раньше.

А началось все как раз с желания написать софтину, которая вытягивает все необходимые пакеты для установки софта на машину без инета, а оказалось, что все уже написано до меня.

PS внимательнее читаем маны.

Высказать мнение | Ответить | Правка | ^ | Наверх | Cообщить модератору

10. "Перенос пакетов с зависимостями между Debian-based дистрибут..."  +/
Сообщение от аноним on 12-Дек-09, 01:51 
классная хаутушка, спасибо! ...если бы действительно, оформить это в виде пары скриптов (собственные знания пока не позволяют), то было бы вообще супер.
Высказать мнение | Ответить | Правка | ^ | Наверх | Cообщить модератору

11. "Перенос пакетов с зависимостями между Debian-based дистрибут..."  +/
Сообщение от Vitto email on 12-Дек-09, 09:38 
Сейчас рассматриваю возможность написания утилитки и, возможно, GUI к ней. Смысл в предоставлении возможности собирать и хранить файлы status от свежеустановленных осей для большего удобства. Ну и автоматизировать все это безобразие.
Высказать мнение | Ответить | Правка | ^ | Наверх | Cообщить модератору

12. "Перенос пакетов с зависимостями между Debian-based дистрибут..."  +/
Сообщение от Vitto74 email(ok) on 31-Янв-10, 00:58 
Еще небольшое дополнение. Если для скачивания пакетов использовать Ubuntu и собственный sources.list, то нужно предварительно отключить все PPA репозитории т.к. ссылки на них хранятся в отдельных файлах в каталоге /etc/apt/sources.list.d и не перекрываются вашим sources.list
Высказать мнение | Ответить | Правка | ^ | Наверх | Cообщить модератору


Архив | Удалить

Индекс форумов | Темы | Пред. тема | След. тема




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру