попробуйте a
sudo apt-get clean
Ваш локальный репозиторий может устареть
Вы могли попробовать что-то как:
list="" ; for pkg in $(apt-cache search ^mate | grep -v -- '-dev'); list="$list $pkg" ; done ; sudo apt-get install $list
Можно только передать регулярное выражение как аргумент apt-get install
.
Можно сделать регулярное выражение, которое делает то, что Вы хотите, но это утомительно. Отрицание регулярного выражения может быть выражено регулярным выражением, но размер дополнения regex растет экспоненциально с размером оригинала в целом.
apt-get install '^mate(.?.?.?|.*([^v]|[^e]v|[^d]ev|[^-]dev))$'
Можно использовать шаблоны поиска Способности, чтобы генерировать список пакетов с полудостойным синтаксисом и передать получающийся список apt-get install
или aptitude install
.
aptitude search '^mate !-dev$'
Я задал вопрос я тоже. Я пробовал смотреть вперед, но apt-get их не понял. Поэтому я искал другой способ заархивировать тот же результат и нашел здесь ответ. Тем не менее, поскольку выбранное решение использует команду grep, вы можете использовать опережающий просмотр и еще больше сократить выражение serach с точки зрения вызовов:
apt-cache search '^mate' | grep -P '^mate(?!.*dbg)(?!.*dev).*'
И имейте в виду, что пакеты Mates, такие как atril, не начинаются с сопряжения в начало их имени. Они его даже не содержат.
^
, Ну, в общем, возможно, короче?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