Форум русскоязычного сообщества Ubuntu


Следите за новостями русскоязычного сообщества Ubuntu в Twitter-ленте @ubuntu_ru_loco

Автор Тема: Обновления без интернета - локальный репозиторий.  (Прочитано 22686 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн www777

  • Автор темы
  • СуперМодератор
  • Старожил
  • *
  • Сообщений: 2765
    • Просмотр профиля
Открываем терминал: Ctrl+Alt+T

чистим кэш от устаревших пакетов (не обязательно):
sudo apt-get autoclean
создаём локальный репозиторий, а именно создаём папку Packages в дом. директории, куда копируем деб-пакеты из кэша и создаём список пакетов:
mkdir ~/Packages
cp /var/cache/apt/archives/*.deb ~/Packages
cd ~/Packages
apt-ftparchive packages .|gzip > Packages.gz

Теперь в домашней директории лежит локальный репозиторий Packages, который можно скопировать на любой носитель, например флешку

Для того, что использовать этот репозиторий надо указать его в системе (а стандратные репозитории вырубить, чтобы система не лезла в Инет).

Система - Администрирование - Источники приложений - ПО сторонних производителей - Добавить

Общий вид: deb file:/ путь к пакетам /
Пример: deb file:/media/KINGSTON/Packages / - если пакеты хранятся на флешке

Далее обновляем список пакетов и ставим нужные стандартными средствами.

Вау, кажется это гениально и просто, обязательно попробую этот способ,  да он похож на APTonCD , но APTonCD использовать не получается, из ошибок синаптика при монтировании оптического диска в качестве источников приложений, тем более я хочу именно на флешке хранить на не на CD, ибо пакеты слишком часто обновляются. Так что попробую.... и отпишусь обязательно.

Оффлайн Molibden

  • Участник
  • *
  • Сообщений: 184
    • Просмотр профиля
Thunde®, по ходу, это лучший из предложенных методов, спасибо. Лес оказался за соснами.  :)

www777, тока не обращай внимание на сообщение типа: "Следующие пакеты возможно ставятся из не достоверных источников", ну как-то так. Ключ для репозитария на флехе можно и не добавлять.

Оффлайн www777

  • Автор темы
  • СуперМодератор
  • Старожил
  • *
  • Сообщений: 2765
    • Просмотр профиля
Открываем терминал: Ctrl+Alt+T

чистим кэш от устаревших пакетов (не обязательно):
sudo apt-get autoclean
создаём локальный репозиторий, а именно создаём папку Packages в дом. директории, куда копируем деб-пакеты из кэша и создаём список пакетов:
mkdir ~/Packages
cp /var/cache/apt/archives/*.deb ~/Packages
cd ~/Packages
apt-ftparchive packages .|gzip > Packages.gz

Теперь в домашней директории лежит локальный репозиторий Packages, который можно скопировать на любой носитель, например флешку

Для того, что использовать этот репозиторий надо указать его в системе (а стандратные репозитории вырубить, чтобы система не лезла в Инет).

Система - Администрирование - Источники приложений - ПО сторонних производителей - Добавить

Общий вид: deb file:/ путь к пакетам /
Пример: deb file:/media/KINGSTON/Packages / - если пакеты хранятся на флешке

Далее обновляем список пакетов и ставим нужные стандартными средствами.

А как же индексы? Ты про ник забыл что ли?
Вот сделал всё по твоей инструкции, после обнговления списка пакетов, вот такое:

Цитировать
Не удалось загрузить индексы всех репозиториев

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

Не удалось получить file:/media/E445-8645/Packages//media/E445-8645/Packages/Packages.gz  Файл не найден
Некоторые индексные файлы не скачались, они были проигнорированы или вместо них были использованы старые версии

Это пусть указан до флешки.

То есть как я понял, нет индексов на флешке?
« Последнее редактирование: 29 Июля 2010, 14:37:05 от www777 »

Оффлайн Molibden

  • Участник
  • *
  • Сообщений: 184
    • Просмотр профиля
Packages.gz это и есть индекс.
Попробую у себя, вечером отпишусь.

Оффлайн ploop

  • Активист
  • *
  • Сообщений: 762
    • Просмотр профиля
Цитировать
Packages.gz это и есть индекс.
Цитировать
cp /var/cache/apt/archives/*.deb ~/Packages

www777, Packages.gz скопировался? Если делать по инструкции, только одни deb'ы скопируются...

Оффлайн Molibden

  • Участник
  • *
  • Сообщений: 184
    • Просмотр профиля
deb file:///home/molibden/Packages /Так у мну сработало, это в sources.list строка. Обращаем внимание на пробел перед последним слешем.

ploop, мы же Packages.gz генерим сами из списка скопированных пакетов.
« Последнее редактирование: 29 Июля 2010, 14:51:10 от Molibden »

Оффлайн RustemNur

  • Почётный модератор
  • Старожил
  • *
  • Сообщений: 2939
  • умрешь с вами
    • Просмотр профиля
Не удалось получить file:/media/E445-8645/Packages//media/E445-8645/Packages/Packages.gz  Файл не найден

В порядке бреда проверки.
Скопируй каталог на винт, дай права на чтение всем.

Оффлайн Molibden

  • Участник
  • *
  • Сообщений: 184
    • Просмотр профиля
Эээ, сравниваем:
От Thunde® :Пример: deb file:/media/KINGSTON/Packages /
От мну: deb file:///home/molibden/Packages /
Три слеша - 2 шт - протокол, 1 - от абсолютного пути, как-то так.

Оффлайн ploop

  • Активист
  • *
  • Сообщений: 762
    • Просмотр профиля
Цитировать
ploop, мы же Packages.gz генерим сами из списка скопированных пакетов.
ааа, точно...

Оффлайн thunderamur

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 6844
    • Просмотр профиля
Тогда еще один тупой вопрос: на данный момент у меня в /var/cache/apt/archives/ находится 336 объектов, всего 158,2 МБ. Это явно не все, что я устанавливал. Можно ли выцепить все установленные архивы?  А так этот вариант ничем не отличается принципиально от AptonCD.
Система автоматически подчищает кэш от устаревших пакетов, т.е. тех пакетов, которые более недоступны в списках. Можно это дело выключить в настройках синаптика. К тому же в кэше нет пакетов, которые ставились "дабл-кликом" или через dpkg -i.

Цитировать
Автор: ploop
Из-за того, что конфигурация установленного софта/железа на машинах разная, единственно правильное решение вижу таким:
1) Создать список установленного софта на машине без интернета
2) Подсунуть его apt'у на нашине с интернетом в замен родного, обновить индексы, закачать пакеты (не устанавливая, разумеется)
3) На машине без интернета установить все скачанные пакеты и заменить индексы

Как реализовать не знаю.

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

Цитировать
А как же индексы? Ты про ник забыл что ли?
Вот сделал всё по твоей инструкции, после обнговления списка пакетов, вот такое:
...
Не удалось получить file:/media/E445-8645/Packages//media/E445-8645/Packages/Packages.gz  Файл не найден
...
Список пакетов создаётся последней строкой из команд, которые я показал, он есть.
Сдается мне путь неправильно указал, обрати внимание на двойное "/media/E445-8645/Packages"

Цитировать
Эээ, сравниваем:
От Thunde® :Пример: deb file:/media/KINGSTON/Packages /
От мну: deb file:///home/molibden/Packages /
Три слеша - 2 шт - протокол, 1 - от абсолютного пути, как-то так.

Да, должно быть 3 слеша, простите, ошибся, бывает.

Оффлайн ploop

  • Активист
  • *
  • Сообщений: 762
    • Просмотр профиля
Цитировать
что-то сложное сказал, я даж не понял что ты хочешь... сделал локальный репозиторий и пользуйся им на других компах, всё, что ты поставил на машину с Инетом, ты сможешь поставить и на машины без оного.
Вот именно - на машине без инета есть софтина X, а на машине с инетом этой софтины нет. Значит и обновление для неё не будет загружено.

С установкой проблем нет - синаптик генерит список ссылок на пакеты, далее - скармливаем его wget'у и радуемся. Проблема только с обновлениями.

Оффлайн thunderamur

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 6844
    • Просмотр профиля
Вот именно - на машине без инета есть софтина X, а на машине с инетом этой софтины нет. Значит и обновление для неё не будет загружено.

С установкой проблем нет - синаптик генерит список ссылок на пакеты, далее - скармливаем его wget'у и радуемся. Проблема только с обновлениями.

ах, вотоночётенадо... ну раз мы знаем какие пакеты установили на машине без Инета, значит мы можем скачать для них обновления на машине с Инетом
apt-get install -dчтобы только загрузить в кэш и не ставить, однако всё равно не особо удобно... придётся периодически запускать эту команду, чтобы узнать появились ли эти самые обновления...

Оффлайн www777

  • Автор темы
  • СуперМодератор
  • Старожил
  • *
  • Сообщений: 2765
    • Просмотр профиля
Тогда еще один тупой вопрос: на данный момент у меня в /var/cache/apt/archives/ находится 336 объектов, всего 158,2 МБ. Это явно не все, что я устанавливал. Можно ли выцепить все установленные архивы?  А так этот вариант ничем не отличается принципиально от AptonCD.
Система автоматически подчищает кэш от устаревших пакетов, т.е. тех пакетов, которые более недоступны в списках. Можно это дело выключить в настройках синаптика. К тому же в кэше нет пакетов, которые ставились "дабл-кликом" или через dpkg -i.

Цитировать
Автор: ploop
Из-за того, что конфигурация установленного софта/железа на машинах разная, единственно правильное решение вижу таким:
1) Создать список установленного софта на машине без интернета
2) Подсунуть его apt'у на нашине с интернетом в замен родного, обновить индексы, закачать пакеты (не устанавливая, разумеется)
3) На машине без интернета установить все скачанные пакеты и заменить индексы

Как реализовать не знаю.

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

Цитировать
А как же индексы? Ты про ник забыл что ли?
Вот сделал всё по твоей инструкции, после обнговления списка пакетов, вот такое:
...
Не удалось получить file:/media/E445-8645/Packages//media/E445-8645/Packages/Packages.gz  Файл не найден
...
Список пакетов создаётся последней строкой из команд, которые я показал, он есть.
Сдается мне путь неправильно указал, обрати внимание на двойное "/media/E445-8645/Packages"

Цитировать
Эээ, сравниваем:
От Thunde® :Пример: deb file:/media/KINGSTON/Packages /
От мну: deb file:///home/molibden/Packages /
Три слеша - 2 шт - протокол, 1 - от абсолютного пути, как-то так.

Да, должно быть 3 слеша, простите, ошибся, бывает.

Тогда еще один тупой вопрос: на данный момент у меня в /var/cache/apt/archives/ находится 336 объектов, всего 158,2 МБ. Это явно не все, что я устанавливал. Можно ли выцепить все установленные архивы?  А так этот вариант ничем не отличается принципиально от AptonCD.
Система автоматически подчищает кэш от устаревших пакетов, т.е. тех пакетов, которые более недоступны в списках. Можно это дело выключить в настройках синаптика. К тому же в кэше нет пакетов, которые ставились "дабл-кликом" или через dpkg -i.

Цитировать
Автор: ploop
Из-за того, что конфигурация установленного софта/железа на машинах разная, единственно правильное решение вижу таким:
1) Создать список установленного софта на машине без интернета
2) Подсунуть его apt'у на нашине с интернетом в замен родного, обновить индексы, закачать пакеты (не устанавливая, разумеется)
3) На машине без интернета установить все скачанные пакеты и заменить индексы

Как реализовать не знаю.

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

Цитировать
А как же индексы? Ты про ник забыл что ли?
Вот сделал всё по твоей инструкции, после обнговления списка пакетов, вот такое:
...
Не удалось получить file:/media/E445-8645/Packages//media/E445-8645/Packages/Packages.gz  Файл не найден
...
Список пакетов создаётся последней строкой из команд, которые я показал, он есть.
Сдается мне путь неправильно указал, обрати внимание на двойное "/media/E445-8645/Packages"

Цитировать
Эээ, сравниваем:
От Thunde® :Пример: deb file:/media/KINGSTON/Packages /
От мну: deb file:///home/molibden/Packages /
Три слеша - 2 шт - протокол, 1 - от абсолютного пути, как-то так.

Да, должно быть 3 слеша, простите, ошибся, бывает.

Ребят, какой тройной слэш? Я только что сейчас сделал с одинарным слэшэм и у меня заработало, только я путь указал не на флешку а в домашнюю директорию. Вот так file:/home/sergey/Packages /
Теперь я проведу тест на свежеустановленной Ubuntu, я думаю что заработает, но я должен проверить всё, что бы быть увереным что всё чики пуки.
Блин мне этот метод так нравиться. Это именно то что я и искал.
Да хотелось бы знать, что именно делает каждая команда.

mkdir ~/Packages Это значит просто создаёт в домашней дерриктории пустую папку Packages
cp /var/cache/apt/archives/*.deb ~/Packages А это значит копирует пакеты из системного архива в только что созданную папку Packages в домашней дерриктории?
cd ~/Packages А вот это команда для чего?
apt-ftparchive packages .|gzip > Packages.gz Это создание индекса пакетов, только я не понял, где этот идекс храниться? В папке  Packages я вижу только deb пакеты...
Как я в общем понял, первые две команды не обязательны вовсе, можно скопировать всё вручную, под правами рута, а потом выполнить
cd ~/Packages (для чего эта команда, как я уже говорил, я не знаю)
apt-ftparchive packages .|gzip > Packages.gz создаём индекс, который я не понял где храниться.
« Последнее редактирование: 29 Июля 2010, 18:00:10 от www777 »

Оффлайн RustemNur

  • Почётный модератор
  • Старожил
  • *
  • Сообщений: 2939
  • умрешь с вами
    • Просмотр профиля
Че-то вопросы какие-то...
Цитировать
cd ~/Packages

А вот это команда для чего?

man cd


Пардон, на нее даже man-а нет.  :D

cd - смена рабочего каталога.

ЗЫ: а куда от нее у меня ман делся?!

Вот есть ман
http://www.opennet.ru/man.shtml?topic=cd&russian=0&category=&submit=%F0%CF%CB%C1%DA%C1%D4%D8+man
« Последнее редактирование: 29 Июля 2010, 18:08:52 от RustemNur »

Оффлайн Molibden

  • Участник
  • *
  • Сообщений: 184
    • Просмотр профиля
(Нажмите, чтобы показать/скрыть)

www777, понимаю, что пригрузили, через 3 дня все станет кристально ясно.
apt-ftparchive packages .|gzip > Packages.gzЭта команда выполняется из директории, где лежат deb пакеты, поэтому сначала туда надо перейти: cd ~/Packages
Ну или прописать путь к той директории куда скопировал пакеты.

Файл Packages.gz потом создастся в каталоге с deb пакетами, т.е. в том каталоге откуда выполнял команду.
Просмотреть его наличие: ls *.gz

 

Страница сгенерирована за 0.033 секунд. Запросов: 23.