Для плавного обновления с 10.04 до 10.10 я хотел бы удалить все пакеты, которых нет в репозиториях по умолчанию (например, chromium PPA и сторонние репозитории). Как проще всего (желательно CLI) найти и удалить эти пакеты?
Редактировать: этот вопрос не ограничивается PPA, у меня также есть репозиторий x2go, поэтому я ищу общую команду для удалить пакеты, принадлежащие определенному хранилищу. Для PPA на вопрос , как можно удалить PPA , есть отличные ответы.
Этот сценарий может перечислить все пакеты с конкретного сервера/ответвления (изменяющий две заявленных переменные):
#!/bin/bash
server="http://it.archive.ubuntu.com/ubuntu/"
branch="maverick-updates/main"
apt-cache policy $(dpkg -l | awk 'NR >= 6 { print $2 }') |
awk -v server="$server" -v branch="$branch" \
'/^[^ ]/ { split($1, a, ":"); pkg = a[1] }
nextline == 1 { nextline = 0; if ($2 == server && $3 == branch) print pkg }
/\*\*\*/ { nextline = 1 }'
если необходимо перечислить все пакеты, не прибывающие из конкретного сервера, независимо из ответвления, замените предпоследнюю строку:
nextline == 1 { nextline = 0; if ($2 != server) print pkg }
Проверьте PPA-продувки .
Использование:
ppa-purge -purge <nameofppa> [-s hostserver]
Hostserver по умолчанию принимает значение ppa.launchpad.net
.
Вот ссылка на справочную страницу для команды ppa-purge
для справки.
Чтобы хотя бы найти их, начните с отключения PPA и запустите apt-get update
. Затем установите apt-show-versions
. Запуск apt-show-versions | grep 'No available'
даст вам список всех установленных пакетов, которые не могут быть найдены в ваших настроенных репозиториях. С некоторой магией командной строки вы, вероятно, можете вырезать только имена пакетов и передать их в apt-get remove
:
for i in `apt-show-versions | grep 'No available' | cut -d' ' -f 1` ; do sudo apt-get remove -y $i ; done
Обратите внимание, что это пройдет список, возвращенный из apt-show-versions
, и удалит их по одному один. В зависимости от того, что он находит, это может привести к удалению чего-то непреднамеренного из-за зависимостей, поэтому сначала проверьте это.
Я нашел применение ppa-продувки трудным.
Откройте диспетчер пакетов Synaptic в разделе «Система», затем выберите «Настройки», «Хранилища».
Удалите ненужные.
Готово!
Вот GUI способы сделать это. Надеюсь, это поможет тем, кто не предпочитает CLI. Шаги просты и легко следовать.
Открыть менеджер синаптических пакетов . Если он не установлен, установите его:
sudo apt-get install synaptic
При открытии нажмите кнопку Origin внизу слева. В нем будут перечислены все хранилища в верхней левой части. Выберите конкретный репозиторий, для которого нужно удалить пакеты. В нем будут перечислены все пакеты в этом хранилище. Щелкните по первому полю i, e S или Установленная версия , чтобы сначала показать установленные пакеты.
Теперь выберите все пакеты для удаления.
Подсказки для удаления:
Выберите первый пакет, затем удерживайте клавишу Shift kbd> и снова выберите последний пакет, чтобы выбрать все. Затем щелкните правой кнопкой мыши поле квадрат и выберите метку для удаления или метку для полного удаления .
или Выберите любые пакеты и нажмите Ctrl kbd> + A kbd>, чтобы выбрать все. Затем щелкните правой кнопкой мыши поле квадрат и выберите метку для удаления или метку для полного удаления.
Вот и все. Удалит без проблем. Я также приложил изображение, чтобы сделать его более четким. Надеюсь, это поможет. :)
aptitude
ошибка мультидуги для ppa-purge
Обычно, как Vadim Rutkovsky и Takkat объяснили, работая ppa-purge
с синтаксисом по умолчанию эффективный способ удалить все пакеты, обеспеченные PPA, правильно понижая их до версий, обеспеченных в других настроенных источниках программного обеспечения, когда это возможно.
Однако как Takkat указал, ошибка 831768 предотвращает ppa-purge
от работы правильно для удаления пакетов мультидуги (как 32-разрядные пакеты, установленные в 64-разрядных системах). Это вызвано тем, что aptitude
не может обработать конфликтующие зависимости в пакетах мультидуги (это - то, что ошибка о), и поведение по умолчанию ppa-purge
должен использовать aptitude
понизить пакеты.
К счастью, ppa-purge
принимает -i
флаг, который заставляет это предпочитать apt-get
кому: aptitude
как его бэкенд. Как зарегистрировано в отчет об ошибках, с помощью apt-get
эффективная альтернатива ручному вызову aptitude
, так выполнение ppa-purge
с -i
флаг должен быть эффективным обходным решением для удаления/понижения всех пакетов, обеспеченных PPA, включая пакеты мультидуги.
Вот синтаксис:
sudo ppa-purge -i ppa:ppaowner/ppaname
Как обычно (то же как тогда, когда -i
флаг не используется):
ppaowner
заменяется владельцем PPA./ppaname
является дополнительным. Если существующий, ppaname
заменяется названием PPA. В противном случае это принимает значение по умолчанию к ppa
.Например, предположите, что у меня был PPA для нестабильных сборок qBittorrent, установленного, и я хотел удалить его полностью, автоматически понижение qBittorrent к любой версии доступно посредством моего другого исходного использования программного обеспечения apt-get
негласно вместо aptitude
. Затем я работал бы:
sudo ppa-purge -i ppa:hydr0g3n/qbittorrent-unstable
По некоторым причинам, несколько полезных опций для ppa-purge
не документируются в его страницу руководства, включая -i
. Но можно получить информацию о них путем выполнения ppa-purge -h
(или просто ppa-purge
без аргументов):
ek@Del:~$ ppa-purge -h
Usage: sudo ppa-purge [options] <ppa:ppaowner>[/ppaname]
ppa-purge will reset all packages from a PPA to the standard
versions released for your distribution.
Options:
-p [ppaname] PPA name to be disabled (default: ppa)
-s [host] Repository server (default: ppa.launchpad.net)
-d [distribution] Override the default distribution choice.
-y Pass -y --force-yes to apt-get or -y to aptitude
-i Reverse preference of apt-get upon aptitude.
-h Display this help text
Example usage commands:
sudo ppa-purge xorg-edgers
will remove https://launchpad.net/~xorg-edgers/+archive/ppa
sudo ppa-purge -p xorg-testing sarvatt
will remove https://launchpad.net/~sarvatt/+archive/xorg-testing
sudo ppa-purge ppa:ubuntu-x-swat/x-updates
will remove https://launchpad.net/~ubuntu-x-swat/+archive/x-updates
Notice: If ppa-purge fails for some reason and you wish to try again,
(For example: you left synaptic open while attempting to run it) simply
uncomment the PPA from your sources, run apt-get update and try again.
"Обратное предпочтение Кв. - добирается на способность", является немного загадочным. Путем рассмотрения соответствующей части исходного кода (ppa-purge
просто сценарий оболочки, в конце концов), мы видим, что это означает, что поведение по умолчанию состоит в том, чтобы предпочесть aptitude
кому: apt-get
, и -i
отметьте инвертирует это предпочтение.