Здравствуйте форумчане. Я неопытный пользователь в ubuntu и просил бы помочь разобраться как создать локальный репозиторий.
Цель состоит в том, чтобы переносить пакеты с ПК где есть интернет, на ПК где его нет и устанавливать программы.
Нашел способ в интернете, который опишу ниже - он работал в linux mint 17.3, но позже когда переустановил на последнюю ubuntu mate, то этот способ не работает. Подскажите что делаю не так.
1. Создаю каталог в домашней директории mkdir repo;
2. Копирую туда все нужные мне пакеты;
3. Создаю индексный файл командой apt-ftparchive packages . | gzip > Packages.gz
Теперь у меня в каталоге repo находятся пакеты и файл Packages.gz.
4. Добавляю свой репозиторий при помощи добавления записи deb file:/home/vladimir/repo / в файле
/etc/apt/sources.list
5. Обновляю списки sudo apt update. Получаю ошибку в терминале
Get:1 file:/home/vladimir/repo InRelease
Ign:1 file:/home/vladimir/repo InRelease
Get:2 file:/home/vladimir/repo Release
Err:2 file:/home/vladimir/repo Release
Файл не найден - /home/vladimir/repo/Release (2: Нет такого файла или каталога)
Чтение списков пакетов… Готово
E: The repository 'file:/home/vladimir/repo Release' does not have a Release file.
N: Updating from such a repository can't be done securely, and is therefore disabled by default.
N: See apt-secure(8) manpage for repository creation and user configuration details.
Погуглить я уже могу. Решения с помощью программы reprepo не подходят. Делал я с помощью debmirror копию и подключал, но это тоже не выход. Поскольку раньше можно было сделать просто, как описано выше. Скачал пакеты нужные в папку, создал индексный файл. Перенес эту папку с индексным файлом на целевой компьютер и подключил этот репозиторий. То есть было очень быстро и просто. Теперь я насколько понимаю загвоздка в том, что репозиторий должен быть подписан обязательно и содержат файл Release. Раньше прокатывало без них, а только ругался, что непроверенный источник, но списки обновлял.
То есть получается, что если я скопирую обновления и все нужные пакеты из кэша и перенесу его в папку кэша компьютера без интернета, то synaptic сначала смотрит пакеты в кэше? Это, конечно, плюс большой, но как быть, если на компьютере с интернетом обновил программы и пакеты безопасности одним кликом. Все скачанные новые пакеты попали в кэш, разве я смогу простым копированием этих пакетов и переноса их в папку кэша на оффлайн компьютер, используя, синаптик в пару кликов обновится?
И еще один вопрос. Допустим я обновил 10 программ до новой версии на ПК с инетом, переношу пакеты этих программ на оффлайн ПК, копирую эти пакеты в кэш. Захожу в синаптик, как он поймет, что нужно установить новые версии этих 10 программ. Или нужно вручную в списке 10 раз выбирать каждую программу?
Перенес в кэш оффлайн компьютера. Зашел в синаптик, выбрал установленные, нажал обновить. Ничего не происходит. Предварительно все репозитории отключил.
Решил я создать с помощью aptoncd образ диска пакетов. Программа автоматически создала файл Release и Packages.gz. Смонтировал это образ и подключил этот репозиторий. Все равно пошла ошибка.
vladimir@electro:/mnt/dvd$ sudo apt update
Get:1 file:/mnt/dvd InRelease
Ign:1 file:/mnt/dvd InRelease
Get:2 file:/mnt/dvd Release [1.594 B]
Get:2 file:/mnt/dvd Release [1.594 B]
Get:3 file:/mnt/dvd Release.gpg
Ign:3 file:/mnt/dvd Release.gpg
Чтение списков пакетов… Готово
E: The repository 'file:/mnt/dvd Release' is not signed.
N: Updating from such a repository can't be done securely, and is therefore disabled by default.
N: See apt-secure(8) manpage for repository creation and user configuration details.