Как использовать apt remove с подстановочным знаком? [дублировать]

Когда я запускаю эту команду :

apt install libkf5*

Я получаю следующую ошибку :

Unable to locate package libkf5*


Я уверен, что пакеты, имена которых начинаются с libkf5, существуют (завершение табуляции говорит об этом). Таким образом, проблема не в отсутствии этих пакетов. (Обратите внимание на звездочку в конце этого сообщения об ошибке, подстановочный знак вообще не работает)
Я использую apt v.1.9.
Заранее спасибо.

21
задан 19 June 2020 в 07:10

5 ответов

Последние версии apt изменили способ указания шаблонов apt больше не поддерживает регулярные выражения напрямую или подстановочные знаки, за исключением * , поддержка которых была восстановлена ​​в 2.1.0 и перенесен на 2.0.3. .

Теперь вы должны использовать

apt install '~nlibkf5.*'

с apt между 1.9.9 и 2.0.2 или длинную форму

apt install '?name(libkf5.*)'

, доступную немного раньше.

См. шаблоны apt справочная страница ( man apt-patterns ) для получения дополнительных сведений.

21
ответ дан 4 January 2021 в 08:34

Согласно журналу изменений apt, версия 2.1.0 :

* Reinstate * wildcards (Closes: #953531) (LP: #1872200)

(Ссылка: Launchpad # 1872200 )

Звездочка (и только звездочка) восстановлена ​​для всех подкоманд apt , включая apt install .

Хотя версия 2.1.0 слишком нова для поставки в Focal, она была перенесена на 2.0.3 , которая доступна в focal- предлагаемый репозиторий. Вы можете обратиться к вики Ubuntu , чтобы включить Предлагаемый репозиторий, а затем вы можете установить apt 2.0.3, в котором эта функция была перенесена.

Убедитесь сами:

image

Примечание : Вы Возможно, вы захотите прочитать Что такое "предлагаемый" репозиторий? перед тем, как продолжить работу с Предлагаемым репозиторием.

2
ответ дан 4 January 2021 в 08:34

Я нашел небольшую хитрость, чтобы использовать apt с подстановочным знаком. Нам просто нужно установить псевдоним apt с помощью apt-get , но этот метод не работает, потому что псевдонимы не передаются в sudo . Чтобы избавиться от этой проблемы, вы можете добавить второй псевдоним для sudo в свой .bashrc файл:

alias sudo='sudo ' # whitespace is important 
alias apt='apt-get'

Кредиты:

1
ответ дан 4 January 2021 в 08:34

В Ubuntu 20.04 представлен Apt 2.0

Из Примечания к выпуску :

Новые возможности

  • Команды, принимающие имена пакетов, теперь принимают шаблоны в стиле aptitude. Синтаксис шаблонов в основном является подмножеством способностей, см. apt-patterns (7) для получения дополнительных сведений.

Несовместимость

  • Команда apt (8) больше не принимает регулярные выражения или подстановочные знаки в качестве аргументов пакета, используйте шаблоны (см. Новые функции).
2
ответ дан 4 January 2021 в 08:34

Для этой цели все еще можно использовать обычный apt-get .

Для примера OP это будет выглядеть так:

sudo apt-get install "libkf5 *"

5
ответ дан 4 January 2021 в 08:34

Другие вопросы по тегам:

Похожие вопросы: