История изменений
Исправление monk, (текущая версия) :
Но когда речь идет о наборе разномастных программ, написанных на разных языках, у каждой из которых свои разработчики, это просто невозможно.
Почему? Предположим, я захотел сделать такую возможность для Debian.
Мне нужны следующие команды-утилиты:
- repo-init
Перебирает все установленные пакеты и для каждого делает apt source в /usr/src/repo
- repo-get <имя пакета>
Копирует исходники пакета из /usr/src/repo в /usr/src/current/<имя пакета>
- repo-commit <имя пакета>
Собирает пакет из /usr/src/current/, устанавливает его через dpkg, записывает имя в файл с именами изменённых пакетов.
- repo-upgrade
Вытаскивает список пакетов для обновления через apt, для каждого обновляемого изменённого вытаскивает новый исходник, объединяет через kdiff3 новый, старый и текущий. Получает новый текущий, собирает пакет.
Обновляет все остальные пакеты, ставит новые версии изменённых.
Для всех обновлённых скачивает новые исходники в /usr/src/repo
- repo-restore <имя пакета>
Устанавливает пакет из дистрибутива. Удаляет из списка обновлённых.
Всё. С поправкой на команды получения исходников и обновления можно адаптировать для любого дистрибутива.
Исходная версия monk, :
Но когда речь идет о наборе разномастных программ, написанных на разных языках, у каждой из которых свои разработчики, это просто невозможно.
Почему. Предположим, я захотел сделать такую возможность для Debian.
Мне нужны следующие команды-утилиты:
- repo-init
Перебирает все установленные пакеты и для каждого делает apt source в /usr/src/repo
- repo-get <имя пакета>
Копирует исходники пакета из /usr/src/repo в /usr/src/current/<имя пакета>
- repo-commit <имя пакета>
Собирает пакет из /usr/src/current/, устанавливает его через dpkg, записывает имя в файл с именами изменённых пакетов.
- repo-upgrade
Вытаскивает список пакетов для обновления через apt, для каждого обновляемого изменённого вытаскивает новый исходник, объединяет через kdiff3 новый, старый и текущий. Получает новый текущий, собирает пакет.
Обновляет все остальные пакеты, ставит новые версии изменённых.
Для всех обновлённых скачивает новые исходники в /usr/src/repo
- repo-restore <имя пакета>
Устанавливает пакет из дистрибутива. Удаляет из списка обновлённых.
Всё. С поправкой на команды получения исходников и обновления можно адаптировать для любого дистрибутива.