Как выбрать пакеты, запускаются с “помощника -”, но не конец с “-dev”?

попробуйте a

sudo apt-get clean

Ваш локальный репозиторий может устареть

5
05.08.2012, 07:09
3 ответа

Вы могли попробовать что-то как:

list="" ; for pkg in $(apt-cache search ^mate | grep -v -- '-dev'); list="$list $pkg" ; done ; sudo apt-get install $list
1
27.01.2020, 20:39
  • 1
    не поддерживает ^, Ну, в общем, возможно, короче? sudo apt-get install $(apt-cache search ^mate | grep ^mate | grep -v -- '-dev' | cut -d' ' -f1) –  Xiè Jìléi 05.08.2012, 07:04
  • 2
    ах, спасибо. я отделывался от памяти без 'способной' системы использования для тестирования на прямо сейчас. :) –  Tim Kennedy 06.08.2012, 07:18

Можно только передать регулярное выражение как аргумент apt-get install.

Можно сделать регулярное выражение, которое делает то, что Вы хотите, но это утомительно. Отрицание регулярного выражения может быть выражено регулярным выражением, но размер дополнения regex растет экспоненциально с размером оригинала в целом.

apt-get install '^mate(.?.?.?|.*([^v]|[^e]v|[^d]ev|[^-]dev))$'

Можно использовать шаблоны поиска Способности, чтобы генерировать список пакетов с полудостойным синтаксисом и передать получающийся список apt-get install или aptitude install.

aptitude search '^mate !-dev$'
5
27.01.2020, 20:39

Я задал вопрос я тоже. Я пробовал смотреть вперед, но apt-get их не понял. Поэтому я искал другой способ заархивировать тот же результат и нашел здесь ответ. Тем не менее, поскольку выбранное решение использует команду grep, вы можете использовать опережающий просмотр и еще больше сократить выражение serach с точки зрения вызовов:

apt-cache search '^mate' | grep -P '^mate(?!.*dbg)(?!.*dev).*'

И имейте в виду, что пакеты Mates, такие как atril, не начинаются с сопряжения в начало их имени. Они его даже не содержат.

0
27.01.2020, 20:39

Теги

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