Часть $ (...)
оценивается оболочкой еще до вызова xargs.
Вы можете попробовать что-то вроде:
xargs -0 -I {} bash -c 'mv {} $(echo {} | sed "s/local.conf/local.example.com.conf/")'
Вы можете избежать sed с помощью
xargs -0 -I {} bash -c 'f="{}"; mv "{}" "${f/local.conf/local.example.com.conf}"'
См. также команду переименовать
, если она у вас есть.
Похоже, вы заменили версию postgres из репозитория pgdg96
на версию из репозитория amzn-updates
. Оба пакета называются postgresql96
, поэтому yum/RPM решили, что один из них является прямой заменой другого.
Кроме того,в то время как старый пакет, вероятно, также использовал alternatives
для выбора двоичного файла psql
по умолчанию, я подозреваю, что имя группы было другим. Возможно что-то вроде pgsql-psql
, где в качестве нового пакета используется группа psql
. Таким образом, при обновлении ваша система увидела это как новую группу, которую вам нужно было настроить, а не как обновление существующей группы. Также может показаться, что пакет amzn-updates
не устанавливает значение по умолчанию и требует, чтобы вы явно запустили alternatives
, чтобы установить его.
Очень вероятно, что это повторится, если только вы не внесете пакет в черный список из одного из двух репозиториев. Просто добавьте exclude=postgresql96*
в файл /etc/yum.repos.d/
репозитория, на котором вы хотите его отключить.