Утилита для bulk & auto размаскировывание пакетов
Наверное многие из нас, встречались с необходимостью размаскировывать длинные цепочки пакетов, с целью поставить вожделенный новый kdebase-meta, или что-нибудь ещё, требующее ацки много зависимостей.
Я хотел бы несколько автоматизировать этот процесс, посредством написания некоторой утилиты.
Мои текущие требования к этому приложению:
* Должна быть возможность, размаскировывать целые каталоги (kdebase, app-pda, etc...) по заданным параметрам (какие, можно глянуть в ниже приведённом скрипте). Можно использовать как выбранное вручную дерево portage, так и скан по всем имеющимся.
* Размаскировать пакет со всеми зависимостями, с возможностью указания режима, к примеру - mode=lowest|largest|svn. Где lowest - использовать наименьшую подходящую версию, largest - наибольшую подходящую (по возможности не svn), svn - аналогично предыдущей, только с предпочтительным использованием svn-версии.
* Работа в интерактивном режиме (типа как в kuroo).
* Должна быть возможность как выводить только в консоль информацию о том, что нужно размаскировать, так и сразу записывать в необходимые файлы. В случае вывода в файлы должен быть автонейминг, с возможностью переопределения.
Буду рад услышать ваши предложения в этой теме.
Пока что, имеется небольшой, совсем простенький скрипт, который умеет размаскировывать нужную папку, в указанном дереве portage, с заданными параметрами.
Я применял его для размаскировывания kde4-beta2 следующим образом:
UNMASK_FOLDER=kde-base PORTAGE_TREE=/usr/portage/local/layman/kde ARCH=** VERSION=3.97.0 VERSION_MOD='=' ./unmask.sh > /etc/portage/package.keywords/kde4-beta2
Для kde4-svn:
UNMASK_FOLDER=kde-base PORTAGE_TREE=/usr/portage/local/layman/kde ARCH=** VERSION=9999 VERSION_MOD='>=' ./unmask.sh > /etc/portage/package.keywords/kde4-svn
Потом руками создал файл kde4-beta2.add с библиотеками, которые ещё потянулись (их всего было 5-6). И это было гораздо удобнее чем вносить руками бесконечные зависимости. + Не нужно в будующем, когда хочется поставить новый пакет, к примеру из 3.97.0, снова его отдельно размаскировывать. (основной недостаток в том, что это применимо к небольшому числу приложений, но для них и руками размаскировать не сложно как правило :) )
Сперва может показаться, что идея размаскировать целый каталог - не очень удачная, но реально, в силу того что в оверлее пакеты обычно с более новыми версиями, и зависимости у них только на себя же, либо на стабильные в основном дереве, а если даже на не стабильные, то и на немного какие, идея имеет место быть :) Возможно так получиться, что с развитием "Размаскировать пакет со всеми зависимостями" это и потеряет свою актуальность, но пока, что представляется полезным.
PS. Скрипт только для тех, кто понимает что он делает :) ! Для меньшей деструктивности в случае неполадки, я специально запостил вариант который умеет только в консоль выводить и не пишет ничего сам в файлы.
- Для комментирования войдите или зарегистрируйтесь
emerge
emerge app-portage/autounmask
не оно? не знаю как у него с размаскировкой каталогов, но быстро ставить нестабильные пакеты помогает :)
Спасибо,
Спасибо, посмотрел.
Попробовал kde4 с её помощью размаскировать - замечательно размаскировалось, осталась лиш одна блокировка которую в ручную надо было разрулить. Это очень обрадовало.
Из недостатков - у программы только две опции, из которых --pretend вообще игнориться.
Sony Vaio SZ460 Premium, Core2Duo 2.0, hdd=200G:7200, mem=2G, hybrid video: nvidia 7400 + GMA 950