Когда я запускаю эту команду :
apt install libkf5*
Я получаю следующую ошибку :
Unable to locate package libkf5*
Я уверен, что пакеты, имена которых начинаются с libkf5
, существуют (завершение табуляции говорит об этом). Таким образом, проблема не в отсутствии этих пакетов. (Обратите внимание на звездочку в конце этого сообщения об ошибке, подстановочный знак вообще не работает)
Я использую apt
v.1.9.
Заранее спасибо.
Последние версии 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
) для получения дополнительных сведений.
Согласно журналу изменений 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, в котором эта функция была перенесена.
Убедитесь сами:
Примечание : Вы Возможно, вы захотите прочитать Что такое "предлагаемый" репозиторий? перед тем, как продолжить работу с Предлагаемым репозиторием.
Я нашел небольшую хитрость, чтобы использовать apt
с подстановочным знаком. Нам просто нужно установить псевдоним apt
с помощью apt-get
, но этот метод не работает, потому что псевдонимы не передаются в sudo
. Чтобы избавиться от этой проблемы, вы можете добавить второй псевдоним для sudo
в свой .bashrc
файл:
alias sudo='sudo ' # whitespace is important
alias apt='apt-get'
Кредиты:
В Ubuntu 20.04 представлен Apt 2.0
Из Примечания к выпуску :
Новые возможности
- Команды, принимающие имена пакетов, теперь принимают шаблоны в стиле aptitude. Синтаксис шаблонов в основном является подмножеством способностей, см.
apt-patterns (7)
для получения дополнительных сведений.Несовместимость
- Команда apt (8) больше не принимает регулярные выражения или подстановочные знаки в качестве аргументов пакета, используйте шаблоны (см. Новые функции).
Для этой цели все еще можно использовать обычный apt-get
.
Для примера OP это будет выглядеть так:
sudo apt-get install "libkf5 *"