Пропустить конкретное обновление в мире emerge -auvD


30

Есть ли простой способ пропустить определенное обновление emerge -auvD world?

Например, в настоящее время в дереве портежей есть сломанный media-sound/teamspeak-server-bin-3.0.5-r1 помеченный как стабильный, который нарушает все обновление, так как этот пакет является первым в списке. Конечно, я мог бы просто замаскировать эту версию, используя package.maskфайл, но я бы предпочел, чтобы переменная окружения или параметр командной строки пропускали ее только сейчас - она, вероятно, скоро будет исправлена.

Обратите внимание, что я не хочу использовать emerge -auvD1 list of working packages(т. Е. Обновлять только другие пакеты, указав все их имена).

Ответы:


38

Похоже, --excludeопция делает это:

--exclude ATOMS
Разделенный пробелами список имен пакетов или атомов слотов. Emerge не будет устанавливать никакой ebuild или бинарный пакет, который соответствует любому из указанных атомов пакета.

Так что это сделало работу для меня:

emerge -auvD --exclude=media-sound/teamspeak-server-bin world

Мне не удалось найти пример, когда кто-то исключил несколько пакетов в одном выражении, поэтому для справки: для каждого пакета требуется --excludeтег afaik. emerge --deep --update @world -av --exclude=chromium --exclude=firefox,
NuclearPeon

12

Если вы не хотите маскировать это, вы можете использовать --keep-goingопцию. Это заставляет emerge сбрасывать свой список и продолжать работу, без сбойного пакета в списке.


3

Ответ ThiefMaster - правильный путь, но есть и другой вариант, который, я думаю, улучшает ответ Кейта . А именно, с его ответом emerge будет опробован и может занять время. Если вы знаете, что первый пакет проблемный, потому что вы только что столкнулись с проблемой, вы можете использовать --resumeи --skipfirst:

--resume(-r)

Возобновляет последний список слияния, который был прерван из-за ошибки. При этом повторно используются аргументы и параметры, которые были заданы с исходной командой, которая возобновляется, и пользователь может также предоставить дополнительные параметры при вызове --resume. Ошибочно предоставлять атомы или наборы в качестве аргументов --resume, поскольку вместо них используются аргументы возобновленной команды. Обратите внимание, что эта операция будет возвращать только ошибку при сбое. Если для portage ничего нет, то portage завершит работу с сообщением и условием успеха. Список возобновления будет сохраняться до тех пор, пока он не будет завершен полностью или пока другой прерванный список слияния не заменит его. История резюме может хранить два списка слияния. После того, как один список резюме завершен, можно вызвать--resumeеще раз, чтобы возобновить старый список. Списки возобновления хранятся в /var/cache/edb/mtimedbи могут быть явно удалены при запуске emaint --fix cleanresume(см. Emaint (1)).

--skipfirst

Эта опция действительна только при использовании с --resume. Удаляет первый пакет в списке резюме. Зависимости пересчитываются для оставшихся пакетов, и любые, которые имеют неудовлетворенные зависимости или маскируются, будут автоматически отбрасываться. Также см. Связанный --keep-goingвариант.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.