Можно выбрать пакеты тестирования в gentoo stable
системе, добавив строку со следующим синтаксисом в список ключевых слов:
cat /etc/portage/package.keywords
=dev-python/ipython-0.13.2 ~amd64
# and many lines later
=dev-python/ipython-0.14.1 ~amd64
# and many lines later
>=dev-python/ipython-0.13.4 ~amd64
Этот файл будет расти со временем, и рано или поздно никто не сможет вспомнить, какие строки устарели.
Как я могу время от времени приводить в порядок скрипт?
Строка должна быть удалена,
- если тестовая версия уже стабилизирована
- > = был использован для того же пакета
- = был использован для того же пакета с меньшим номером версии
package-management
configuration
gentoo
disk-cleanup
maintenance
Джонас Стейн
источник
источник
Ответы:
Для этой задачи теперь существует официальный пакет, называемый app-portage / portpeek .
Это может
-f
(исправление) добавлено в качестве параметра.источник
Я написал небольшой скрипт на python, который решает эту проблему. Логика просматривает каждую строку в файле
package.accept_keywords
и действует только на строки, начинающиеся с=
или<=
. Эти строки имеют максимальную версию, поэтому мы можем проверить, нужны ли они больше. Строки без квалификатора или a>=
остаются как есть, так как мы не можем знать, устарели ли они.Затем анализируются строки, которые нас интересуют, и проверяется установленная версия пакета. Если установленная версия новее ключевой версии или больше не установлена, ключевое слово считается устаревшим. Если установленный пакет имеет ту же версию, что и версия с ключами, то установленный пакет проверяется, чтобы определить, является ли он еще ключевым. Если он был стабилизирован, линия устаревает, в противном случае она сохраняется.
Это распечатает новый файл ключевых слов в стандартный формат. Примечание : не перенаправляйте вывод обратно в
/etc/portage/package.accept_keywords
файл, иначе вы закроете файл и потеряете все.Это будет иметь большое значение для очистки файла ключевых слов и для других ваших проблем, сортировка файла, а затем проверка его на наличие нескольких строк для одного и того же пакета поможет решить большинство оставшихся проблем.
источник
Вы знаете, что можете конвертировать файлы пакета. * В каталогах, верно?
Затем вы можете организовать ваши атомы в несколько файлов, например, в моей системе я получил следующее (ну, не совсем, я сейчас не на своем ноутбуке. Но вы поняли идею):
и т.п.
Я нашел это действительно полезным, чтобы помочь мне обновить файлы.
источник
Добавляем к ответу Икраава:
После использования
eix -tT
удалите операторы сравнения и номер версии пакета. Ваш файл также может быть записан как:Это гарантирует, что вы всегда получите тестовые версии
dev-python/ipython
иpackage-cat/package
источник
~amd64
в моем вопросе может ввести в заблуждение. Номера версий должны оставаться нетронутыми. Я не хочу всегда получать последнюю версию, но нахожу лишние строки.Вот небольшой скрипт, который фильтрует записи из файлов /etc/portage/package.*, которые больше не устанавливаются. Кроме того, он удаляет все строки комментариев непосредственно над удаленной записью. (например, как генерируется autounmask). Если комментарии разделены пустой строкой, будут удалены только нижние комментарии. Скрипт не удаляет повторяющиеся записи.
Пожалуйста, обратите внимание, что portage-utils должен быть установлен, и для запуска этого сценария должна быть активирована перехватка postsync /etc/portage/postsync.d/q-reinitialize .
источник
На данный момент
app-portage/eix
пакет предлагает удобный инструмент с именемeix-test-obsolete
. Краткое описание отeix-test-obsolete -h
:Это дает довольно хороший обзор всех избыточных записей в
/etc/portage/package.*
файлах. Единственное, чего мне не хватает, - это информации о точном файле и строке, определяющей лишнюю маску / use / accept / что угодно. Тем не менее,grep -nr
помогает в этом случае.источник
Начните с
eix -tT
. Установите,app-portage/eix
чтобы получить это.источник