Как я могу сказать, установлен ли пакет через конфетку в сценарии удара?

apt-get install wmaker установит windowmaker и все зависимости.

Однако существуют другие дополнительные связанные с производителем окна пакеты, которые можно также хотеть установить. Для получения списка их работайте:

apt-cache search windowmaker

затем склонный - добираются, устанавливают дополнительные пакеты, которые Вы хотите.

Вы, вероятно, также захотите менеджера по оформлению. gdm3 гнома является значением по умолчанию, но существуют другие, доступные включая lightdm, kdm, xdm, и wdm. Последним является "менеджер по оформлению КРЫЛЬЕВ - xdm замена со взглядом WindowMaker"

BTW, склонные - добираются, по умолчанию, установит, Рекомендует: как будто они были, Зависит: - это, вероятно, введет целый набор материала гнома, который Вы не хотите. Можно отключить это путем создания файла в /etc/apt/apt.conf.d, и добавление APT { Install-Recommends "False";}; к нему.

Также BTW, если Вы просто хотите стиль Windowmaker/NextStep, можно найти, что одна из тем XFCE4 достаточна для потребностей. Мои вкусы изменились немного, так как я в последний раз использовал WMaker, но мне все еще нравятся художественные оформления окна стиля WMaker. Openbox является также хорошим менеджером окон, который имеет некоторые хорошие темы NextStep-выхода - я раньше использовал его, пока я не переключился от gnome2 до xfce4 (когда я разочаровался в режиме нейтрализации gnome3, когда-либо являющемся жизнеспособной заменой для gnome2)... xfwm4 xfce сделал большинство вещей, о которых я заботился от openbox и был меньшим количеством стычки для получения работы. я имел очень скучающий из напрасно тратящих время, возвращая мой рабочий стол к тому, чем это должно быть и просто хотело что-то работающее быстрый, который не раздражал меня.

78
30.10.2015, 18:35
4 ответа

Я нашел следующее в частично связанном StackOverflow вопрос ; ответ, который мне был нужен, на самом деле не совсем отвечал на вопрос (и не был выбран как правильный ответ), поэтому я решил, что отправлю его здесь, чтобы другим было легче найти.

yum list installed PACKAGE_NAME

Эта команда возвращает некоторые удобочитаемые выходные данные, но, что более важно, возвращает код статуса выхода; 0 указывает, что пакет установлен , 1 указывает, что пакет не установлен (не проверяет, действителен ли пакет, поэтому yum list installed herpderp-beepbopboop будет возвращает "1" так же, как yum list, установленный traceroute , если у вас не установлен traceroute). Впоследствии вы можете проверить "$?" для этого кода выхода.

Поскольку вывод несколько противоречит интуиции, я использовал "сжатую" версию @Chris Downs ниже в функции-оболочке, чтобы сделать вывод более "логичным" (т. Е.1 = установлен 0 = не установлен):

function isinstalled {
  if yum list installed "$@" >/dev/null 2>&1; then
    true
  else
    false
  fi
}

использование будет

, если установлен $ package; затем эхо "установлено"; иначе echo "не установлено"; fi

РЕДАКТИРОВАТЬ:

Заменены операторы return на вызовы true и false , которые помогают сделать функцию более читаемой / интуитивно понятной, при этом возвращая значения. bash ожидает (т.е. 0 для истины, 1 для ложного).

Если вы просто проверяете один пакет в своем скрипте, возможно, вам лучше напрямую протестировать yum list installed , но (IMHO) эта функция упрощает понимание того, что происходит, и его синтаксис намного проще запомнить, чем yum со всеми перенаправлениями, подавляющими его вывод.

79
27.01.2020, 19:30

Более простой одинарный текст:

yum -q list installed packageX &>/dev/null && echo "Installed" || echo "Not installed"
9
27.01.2020, 19:30

Не совсем соответствует предварительному условию вопроса «via yum», но быстрее, чем «yum -q list»:

rpm -q <package_name>

, который возвращает точное имя возможно установленная версия, а также код ошибки «0», если установлена, и «1», если нет.

22
27.01.2020, 19:30

Удобный скрипт для yum:

#!/bin/sh pckarr=(wget mlocate bind-utils ANY_RANDOM_PACKAGE_NAME) yum update -y for i in ${pckarr[*]} do isinstalled=$(rpm -q $i) if [ ! "$isinstalled" == "package $i is not installed" ]; then echo Package $i already installed else echo $i is not INSTALLED!!!! yum install $i -y fi done updatedb

В массиве pckarr перечислите те пакеты, которые вы хотите установить, или проверьте, установлены ли они.

0
27.01.2020, 19:30

Теги

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