LINUX.ORG.RU

Дебиан: место обитания конфигов

 , конфиги,


0

1

Во многих дистрах в /etc/ существует каталог либо отдельный файл, содержащий настройки системы, в том числе пути для различных системных файлов. В генте это /etc/portage/, в арче - /etc/pacman.conf, в сюсе - /etc/zypp/

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

Но копаясь в дебиане, я не нашел такого конфига. Маны, само собой читал, но возможно, невнимательно.

Собственно вопрос: я плохо ищу или такая возможность отсутствует в принципе?

П.С. про /etc/apt/apt.conf я в курсе, не нашел там нужного функционала.

Обновлено: нагугленные варианты не работали в силу разных причин, мануалы дебиана написаны на каком-то канцелярите. Но на одном из форумов наткнулся на решение. Запускаем

apt-config dump

И видим полный список параметров. Переопределяем необходимые в /etc/apt/apt.conf и всё.

Проблема решена, всем спасибо.

★★★★★

Последнее исправление: utanho (всего исправлений: 2)

Ответ на: комментарий от utanho

Ну и да.

Что может пойти не так? При переустановке системы она может попросить докачать пару килобайт из интернетов.

Если мы говорим про дебьян - то нет. Эта система 30 лет ставиться оффлайн с оптического привода без сети.

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

LamerOk ★★★★★
()
Ответ на: комментарий от utanho

Апт ставит пакеты из кэша.

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

Кэш прозволяет пропустить этап выкачивания - ни больше, ни меньше. Разумеется, только при условии, что пакет из кэша 1 в 1 совпадает с нужным из репозитория.

Без репозитория у тебя нету апта, только dpkg.

LamerOk ★★★★★
()
Ответ на: комментарий от LamerOk

Каждый приходит и пытается рассказать, какой я тупой мудак. Не вникая в суть проблемы, это же лор.

Нет, апт не ставит пакеты из кэша, блджад

апт ставит именно из кэша, если данные о пакете совпадают с данными в /var/lib/dpkg/ Поэтому мне важно было переместить не только кэш, но данные о состоянии пакетов.

Само собой, в кэш они попадают из интернетов, согласно source.list, который кстати, тоже можно переместить.

теоретически можно просто скачать пакет и кинуть в кэш. Если в секции available версия совпадет, то апт поставит его оттуда, не обращаясь к удаленному репозиторию

utanho ★★★★★
() автор топика
Последнее исправление: utanho (всего исправлений: 1)
Ответ на: комментарий от utanho

Кэш прозволяет пропустить этап выкачивания - ни больше, ни меньше.

апт ставит именно из кэша, если данные о пакете совпадают с данными

Да, ты всё верно понял.

Не вникая в суть проблемы,

Да нет никакой «проблемы» поставить дебьян из локального источника. Эта «проблема» успешно решена в прошлом тысячелетии.

Каждый приходит и пытается рассказать, какой я тупой мудак.

Тебе просто рассказывают о граблях, по которым ты будешь скакать.

Как только ты развернёшь на новой голой системе свои копии /{etc/,var/lib}/{apt,dpkg} (это те директории, которые тебе надо скопировать) apt и dpkg будут думать, что все нужные пакеты уже установлены. Тебе предстоит найти способ объяснить им, какие пакеты стоят на самом деле, а какие нужно переустанавливать.

LamerOk ★★★★★
()
Ответ на: комментарий от LamerOk

Тебе предстоит найти способ объяснить им, какие пакеты стоят на самом деле, а какие нужно переустанавливать.

Так в этом то и всё дело. У меня есть список установленных пакетов, которые еще не установлены. Простой скрипт по переустановке всех пакетов придёт на помощь

utanho ★★★★★
() автор топика
Ответ на: комментарий от LamerOk

Да нет никакой «проблемы» поставить дебьян из локального источника.

Никакой установки из локального источника. Сначала дебутстрапом делаем тарбол и бережно храним. Потом просто распаковываем его куда надо и подсовываем свои конфиги. Переустановка всех пакетов займет не больше получаса.

utanho ★★★★★
() автор топика
Ответ на: комментарий от utanho

Так в этом то и всё дело. У меня есть список установленных пакетов, которые еще не установлены.

Ну, тогда алгоритм следующий - копируй на новую машину /etc/apt + /var/lib/apt + свой кэш, прописанный в

Dir::Cache "/tmp/aptcache";
Dir::Cache::archives "/tmp/aptcache";

и проверяй, не пропустил ли чего.

LamerOk ★★★★★
()
Ответ на: комментарий от utanho

Тут много понаписали, читать лень. Не понял что именно тебе надо.

Если речь только о пакетном менеджере то твою задачу полностью решает просто список установленных пакетов с пометками auto/manual (apt-mark showmanual, apt-mark showauto). Убираешь install-recommends, ставишь всё что в списке manual, затем, если оно ещё не поставилось, доставляешь то что в auto и делаешь им apt-mark auto.

firkax ★★★★★
()
Ответ на: комментарий от firkax

Вы очень близки.

Изначально задача стояла примерно такая: вынести файлы управления пакетами на другой носитель. Чтобы в случае форс-мажора можно было переустановить систему с нуля и получить исходный набор пакетов без обращения к интернетам. Вынос на отдельный носитель не просто так задуман. Потому что apt-mark можно не успеть сделать. Или придется делать его по крону.

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

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

Пока я все еще в процессе изучения потрохов Дебиана и есть несколько интересных моментов.

П.С. бутстрап разворачивается очень примитивно, при помощи dpkg

utanho ★★★★★
() автор топика
Последнее исправление: utanho (всего исправлений: 1)