При подключении лкального репозитория команда sudo apt-get update не срабатывает. Решение и обсуждение.

Сообщения
224
#1
Всем привет, Орёл 2.12. Хрен его знает, как устанавливать пакеты, если репозиторий локальный.

Образ вот он, контрольная сумма верная
Bash:
user@astra:~$ md5sum orel-2.12.22-04.12.2019_09.06.iso
6f0102e904a793b3674f8d0fedd6d93f  orel-2.12.22-04.12.2019_09.06.iso
user@astra:~$
Контрольную сумму можно также посмотреть здесь.
https://mirror.yandex.ru/astra/stable/orel/iso/orel-2.12.22-04.12.2019_09.06.iso.md5

По этой инструкции действуем (принцип-то везде одинаков):
https://wiki.astralinux.ru/pages/viewpage.action?pageId=3276859

Папку создаём, чё надо смонтируем.
Bash:
user@astra:~$ mkdir image
user@astra:~$ sudo mount -o loop orel-2.12.22-04.12.2019_09.06.iso image
mount: /dev/loop0 is write-protected, mounting read-only
user@astra:~$
Смотрим /etc/apt/sources.list
Bash:
user@astra:~$ cat /etc/apt/sources.list
deb file:///home/user/image orel main contrib non-free
user@astra:~$
На всякий случай опорожним папку /var/lib/apt/lists. Сюда должны закачаться списки пакетов, если всё нормально.
Bash:
user@astra:~$ sudo rm -r /var/lib/apt/lists/*
user@astra:~$
Собсно apt-get update
Bash:
user@astra:~$ sudo apt-get update
Пол:1 file:/home/use/image orel InRelease
Игн:1 file:/home/use/image orel InRelease
Пол:2 file:/home/use/image orel Release [4 999 B]
Пол:2 file:/home/use/image orel Release [4 999 B]
Пол:3 file:/home/use/image orel Release.gpg [833 B]
Пол:3 file:/home/use/image orel Release.gpg [833 B]
Пол:4 file:/home/use/image orel/main amd64 Packages [1 218 kB]
Игн:4 file:/home/use/image orel/main amd64 Packages
Пол:5 file:/home/use/image orel/contrib amd64 Packages [4 334 B]
Игн:5 file:/home/use/image orel/contrib amd64 Packages
Пол:6 file:/home/use/image orel/non-free amd64 Packages [28,8 kB]
Пол:4 file:/home/use/image orel/main amd64 Packages [4 207 kB]
Ошк:4 file:/home/use/image orel/main amd64 Packages
  Файл не найден - /home/use/image/dists/orel/main/binary-amd64/Packages (2: Нет такого файла или каталога)
Игн:6 file:/home/use/image orel/non-free amd64 Packages
Пол:5 file:/home/use/image orel/contrib amd64 Packages [13,8 kB]
Игн:5 file:/home/use/image orel/contrib amd64 Packages
Чтение списков пакетов… Готово
N: Download is performed unsandboxed as root as file '/home/use/image/dists/orel/InRelease' couldn't be accessed by user '_apt'. - pkgAcquire::Run (13: Отказано в доступе)
N: Пропускается получение настроенного файла «main/binary-i386/Packages», так как репозиторий «file:/home/use/image orel InRelease» не поддерживает архитектуру «i386»
N: Пропускается получение настроенного файла «contrib/binary-i386/Packages», так как репозиторий «file:/home/use/image orel InRelease» не поддерживает архитектуру «i386»
N: Пропускается получение настроенного файла «non-free/binary-i386/Packages», так как репозиторий «file:/home/use/image orel InRelease» не поддерживает архитектуру «i386»
E: Не удалось получить file:/home/use/image/dists/orel/main/binary-amd64/Packages  Файл не найден - /home/use/image/dists/orel/main/binary-amd64/Packages (2: Нет такого файла или каталога)
E: Некоторые индексные файлы не скачались. Они были проигнорированы или вместо них были использованы старые версии.
user@astra:~$
Чёрта лысого:

Файл не найден - /home/use/image/dists/orel/main/binary-amd64/Packages
/home/use/image/dists/orel/contrib/binary-amd64/Packages
/home/use/image/dists/orel/non-free/binary-amd64/Packages


На всякий случай смотри нашу папку:
Bash:
user@astra:~$ ls /var/lib/apt/lists/
lock  partial
user@astra:~$
А почему так? А потому, что в соотвествующик папках должны присутствовать файлы Packages. То есть в каждой папке лежит архивчик:
Bash:
user@astra:~$ ls /home/use/image/dists/orel/main/binary-amd64/
Packages.gz  Release
user@astra:~$
user@astra:~$ ls /home/use/image/dists/orel/contrib/binary-amd64/
Packages.gz  Release
user@astra:~$
user@astra:~$ ls /home/use/image/dists/orel/non-free/binary-amd64/
Packages.gz  Release
user@astra:~$
И рядышком должен быть ещё и файл Packages. А его нет. Забыли они, мля, распаковать. Вот, например, в сетевом репозитории он есть. И в образе диска Смоленск 1.5 есть. А тут нет.

=============================================================
=============================================================
=============================================================

По-быстроляну решение такое. Копируем нашу папку

Bash:
user@astra:~$ cp -r image/ image_0/
user@astra:~$
И во вновь созданной папке распакуем архивы Packages.gz
Bash:
user@astra:~$ sudo gunzip -c /home/use/image_0/dists/orel/main/binary-amd64/Packages.gz | sudo tee -a /home/use/image_0/dists/orel/main/binary-amd64/Packages > /dev/null
user@astra:~$
use@astra:~$ sudo gunzip -c /home/use/image_0/dists/orel/contrib/binary-amd64/Packages.gz | sudo tee -a /home/use/image_0/dists/orel/contrib/binary-amd64/Packages > /dev/null
user@astra:~$
use@astra:~$ sudo gunzip -c /home/use/image_0/dists/orel/non-free/binary-amd64/Packages.gz | sudo tee -a /home/use/image_0/dists/orel/non-free/binary-amd64/Packages > /dev/null
user@astra:~$
/etc/apt/sources.list перепишем
Bash:
user@astra:~$ sudo echo "deb file:///home/use/image_0 orel main contrib non-free" | sudo tee /etc/apt/sources.list > /dev/null
user@astra:~$
И снова команднём:
Bash:
user@astra:~$ sudo apt-get update
Пол:1 file:/home/use/image_0 orel InRelease
Игн:1 file:/home/use/image_0 orel InRelease
Пол:2 file:/home/use/image_0 orel Release [4 999 B]
Пол:2 file:/home/use/image_0 orel Release [4 999 B]
Пол:3 file:/home/use/image_0 orel Release.gpg [833 B]
Пол:3 file:/home/use/image_0 orel Release.gpg [833 B]
Пол:4 file:/home/use/image_0 orel/main amd64 Packages [1 218 kB]
Пол:5 file:/home/use/image_0 orel/contrib amd64 Packages [4 334 B]
Пол:6 file:/home/use/image_0 orel/non-free amd64 Packages [28,8 kB]
Игн:4 file:/home/use/image_0 orel/main amd64 Packages
Игн:5 file:/home/use/image_0 orel/contrib amd64 Packages
Игн:6 file:/home/use/image_0 orel/non-free amd64 Packages
Пол:4 file:/home/use/image_0 orel/main amd64 Packages [4 207 kB]
Пол:5 file:/home/use/image_0 orel/contrib amd64 Packages [13,8 kB]
Пол:6 file:/home/use/image_0 orel/non-free amd64 Packages [112 kB]
Чтение списков пакетов… Готово    
N: Download is performed unsandboxed as root as file '/home/use/image_0/dists/orel/InRelease' couldn't be accessed by user '_apt'. - pkgAcquire::Run (13: Отказано в доступе)
N: Пропускается получение настроенного файла «main/binary-i386/Packages», так как репозиторий «file:/home/use/image_0 orel InRelease» не поддерживает архитектуру «i386»
N: Пропускается получение настроенного файла «contrib/binary-i386/Packages», так как репозиторий «file:/home/use/image_0 orel InRelease» не поддерживает архитектуру «i386»
N: Пропускается получение настроенного файла «non-free/binary-i386/Packages», так как репозиторий «file:/home/use/image_0 orel InRelease» не поддерживает архитектуру «i386»
user@astra:~$
Проверяем:
Bash:
user@astra:~$ ls -1 /var/lib/apt/lists/
_home_use_image%5f0_dists_orel_contrib_binary-amd64_Packages
_home_use_image%5f0_dists_orel_main_binary-amd64_Packages
_home_use_image%5f0_dists_orel_non-free_binary-amd64_Packages
_home_use_image%5f0_dists_orel_Release
_home_use_image%5f0_dists_orel_Release.gpg
lock
partial
user@astra:~$
На этот раз всё OK

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Как-то так. Быть может, из папки image_0 нужно создать новый оброаз *.iso и его использовать, ну так кто может сделать лучше, пусть сделает лучше. Разработчикам: исправляйте. Не благодарите. Обсуждается. Мылицыну привет.
 
Последнее редактирование:

Montfer

New member
Сообщения
2 364
#2
имхо, тот, кто писал инструкцию смешал всё в одну кучу, запутав тем самым людей....
admpc@astra-ce:~$ sudo mount /media/sf_shara_VBox/orel-2.12.22-04.12.2019_09.06.iso /media/cdrom0/
mount: /dev/loop0 is write-protected, mounting read-only
admpc@astra-ce:~$ sudo apt-cdrom -m add
Использование /media/cdrom/ в качестве точки монтирования CD-ROM
Идентификация... [e19c78f4ca72f7f74f1234466c3eba54-2]
Поиск на диске индексных файлов...
Найдено индексов: 3 для пакетов, 0 для источников, 0 для переводов и 1 для сигнатур
Найден ярлык «OS Astra Linux 2.12.22 orel - amd64 DVD »
Название диска:
«OS Astra Linux 2.12.22 orel - amd64 DVD »
Копирование списков пакетов…gpgv: Signature made Ср 04 дек 2019 16:06:27 +07
gpgv: using RSA key 7A7A24A559D1F7A9C9FA1F9A7DB1E284F89C2962
gpgv: Good signature from "JSC RPA RusBITech (REPOSITORY RBT KEY 2018) <mail@rusbitech.ru>"
Reading Package Indexes… Готово
Запись нового списка источников
Записи в списке источников для этого диска:
deb cdrom:[OS Astra Linux 2.12.22 orel - amd64 DVD ]/ orel contrib main non-free
Повторите этот процесс для всех имеющихся CD.
admpc@astra-ce:~$ sudo apt-get update
Игн:1 cdrom://OS Astra Linux 2.12.22 orel - amd64 DVD orel InRelease
Сущ:2 cdrom://OS Astra Linux 2.12.22 orel - amd64 DVD orel Release
Чтение списков пакетов… Готово
N: Пропускается получение настроенного файла «contrib/binary-i386/Packages», так как репозиторий «cdrom://OS Astra Linux 2.12.22 orel - amd64 DVD orel InRelease» не поддерживает архитектуру «i386»
N: Пропускается получение настроенного файла «main/binary-i386/Packages», так как репозиторий «cdrom://OS Astra Linux 2.12.22 orel - amd64 DVD orel InRelease» не поддерживает архитектуру «i386»
N: Пропускается получение настроенного файла «non-free/binary-i386/Packages», так как репозиторий «cdrom://OS Astra Linux 2.12.22 orel - amd64 DVD orel InRelease» не поддерживает архитектуру «i386»
admpc@astra-ce:~$ cat /etc/apt/sources.list
#deb cdrom:[OS Astra Linux 2.12.13 orel - amd64 DVD ]/ orel contrib main non-free
#deb https://download.astralinux.ru/astra/current/orel/repository/ orel main contrib non-free
#deb http://mirror.yandex.ru/astra/current/orel/repository/ orel main contrib non-free


deb cdrom:[OS Astra Linux 2.12.22 orel - amd64 DVD ]/ orel contrib main non-free
admpc@astra-ce:~$ sudo apt install libg
Display all 154 possibilities? (y or n)
admpc@astra-ce:~$ sudo apt install libgost
libgost libgost-astra
admpc@astra-ce:~$ sudo apt install libgost
libgost libgost-astra
admpc@astra-ce:~$ sudo apt install libgost-astra
Чтение списков пакетов… Готово
Построение дерева зависимостей
Чтение информации о состоянии… Готово
Пакеты, которые будут обновлены:
libgost-astra
обновлено 1, установлено 0 новых пакетов, для удаления отмечено 0 пакетов, и 0 пакетов не обновлено.
Необходимо скачать 0 B/188 kB архивов.
После данной операции, объём занятого дискового пространства возрастёт на 0 B.
Пол:1 cdrom://OS Astra Linux 2.12.22 orel - amd64 DVD orel/main amd64 libgost-astra amd64 0.0.12 [188 kB]
(Чтение базы данных … на данный момент установлено 159884 файла и каталога.)
Подготовка к распаковке …/libgost-astra_0.0.12_amd64.deb …
Распаковывается libgost-astra (0.0.12) на замену (0.0.9) …
Finded reference to active OpenSSL config section [libgost_astra]
Active config section is [libgost_astra]
Engines section is [engines_section]
Обрабатываются триггеры для man-db (2.7.6.1-2) …
Настраивается пакет libgost-astra (0.0.12) …
Finded reference to active OpenSSL config section [libgost_astra]
Active config section is [libgost_astra]
Engines section is [engines_section]
Engines section [engines_section] exists
Appending reference to gost_section to [engines_section]
Appending section [gost_section]
admpc@astra-ce:~$
 
Сообщения
224
#3
Да, согласен, можно и так.

1) Если опустошать вручную sudo rm -r /var/lib/apt/lists/*, то команда sudo apt-get update после этого не сработает, нужно вновь командовать sudo apt-cdrom -m add
2) Если необходимо подправить образ, то необходимо монтировать как-нибудь, потом создавать папку-копию образа, и с ней уже работать (править как нужно и так далее). А при работе с папкой, как я уже писал, требует файлов Package, а их нет

В общем, костыли это всё.
--------------------------------------------------------------
Тут
Всё было реализовано, как у людей, единообразно. Нет же, погнало их НЕ разархивировать Packages.gz
 

a.v.sinicyn

New member
Сообщения
2
#4
Сделал маленькую инструкцию как мы это делаем на Astra 1.4 редакция Смоленск:

Предварительная настройка для работы без CD-ROM
Требуется наличие ISO образов: диск.iso

Создайте папку для хранения ISO образов:
Bash:
mkdir -p /usr/iso/
Скопируйте в нее данные ISO образы путем передачи по сети или со съемного носителя.

Создайте папки для монтирования:
Bash:
sudo mkdir -p /mnt/диск
Далее можно монтировать вручную образы, можно сделать sh скрипт для монтирования, можно отредактировать fstab.

Вариант 1 - ручное монтирование:
Bash:
sudo mount /usr/iso/диск.iso /mnt/диск
Вариант 2 - запуск со скрипта:
Bash:
Создать скрипт: sudo nano /mnt/mount.sh
С содержимым:
Bash:
#!/bin/bash
sudo mount /usr/iso/диск.iso /mnt/диск
Права на выполнение:
Bash:
sudo chmod +x /mnt/mount.sh
Настройте автозапуск на монтирование дисков
Bash:
sudo nano /etc/rc.local
Добавить строчку:
Bash:
/mnt/mount.sh
Вариант 3 - добавить запись в файл fstab - не безопасно, но автномно:
Редактирование:
Bash:
sudo nano /etc/fstab
Содержимое:
Bash:
/usr/iso/диск.iso /mnt/диск iso9660 ro 0    0
Настройка apt

Отредактируйте файл настроек пакетного менеджера:
Bash:
sudo nano /etc/apt/sources.list
Содержимое файла:
Bash:
# Закомментировать CDROM
#deb cdrom:[название диска]/ издание contrib main non-free

# Добавить директории смонтированных образов
deb file:/mnt/диск издание contrib main non-free
Обновляем список пакетов:
Bash:
sudo apt-get update
Теперь можно ставить пакеты - без зависимости от CDROM

Источник:
https://gist.github.com/Siniinik/8a15a0568b822a04770d2397e8ecdfb0
 
Сообщения
224
#5
Всем привет, Орёл 2.12. Хрен его знает, как устанавливать пакеты, если репозиторий локальный.
а может быть, кстати говоря, такая шняга сделана умышленно, чтобы с локального репозитория не устанавливали пакеты, а только с общего. Смысл? Проще пареной репы- как заставить юзера ставить только ОБНОВЛЁННЫЕ пакеты (если такие есть, конечно)? Вот то-то и оно.