sudo yum установить или переустановить - PullRequest
0 голосов
/ 25 февраля 2019

Я развертываю свое приложение nodejs через EB на Linux EC2, и в .ebextensions мне нужно установить пакет шрифтов, и я должен использовать yum:

container_commands:
  01_getfont: 
    command: sudo yum -y install http://li.nux.ro/download/nux/dextop/el7/x86_64/webcore-fonts-3.0-1.noarch.rpm

К сожалению, пока это работает для 1-говремя, это не работает во второй раз, если я повторно развернуть, он будет жаловаться, что пакет уже есть.

Так что я делаю, чтобы использовать это:

command: sudo yum -y reinstall http://li.nux.ro/download/nux/dextop/el7/x86_64/webcore-fonts-3.0-1.noarch.rpm

К сожалению, хотя это работает во второй раз и так далее, оно не работает в первый раз, если пакет не существует, выдавая ошибку:

Error: Problem in reinstall: no package matched to remove.

Это сводит меня с ума.

Есть ли способ обойти это?Не очень хорошо разбирается в bash-скрипте Linux, могу ли я понравиться, если в первый раз использую эту команду, или эту команду?

Я могу создать bash-скрипт:

    #!/bin/bash

    sudo yum -y install http://li.nux.ro/download/nux/dextop/el7/x86_64/webcore-fonts-3.0-1.noarch.rpm

и так далее ...

1 Ответ

0 голосов
/ 25 февраля 2019

Поскольку вы упомянули, что запуск сценария shell возможен, он должен быть довольно простым для обработки:

webcore_install.sh

#!/bin/bash

function isinstalled {
  status=$?
  if [[ $status -eq 0 ]]; then
    # reinstall if already present
    sudo yum -y reinstall http://li.nux.ro/download/nux/dextop/el7/x86_64/webcore-fonts-3.0-1.noarch.rpm
  else
    # install if not present
    sudo yum -y install http://li.nux.ro/download/nux/dextop/el7/x86_64/webcore-fonts-3.0-1.noarch.rpm
  fi
}

yum -C list installed "$@"
isinstalled

Тогда ваша командаможет выглядеть примерно так:

sudo ./path/to/webcore_install.sh webcore-fonts-3.0-1

Возможно, вам также потребуется изменить разрешения для сценария shell:

chmod +x webcore_install.sh
...