Установлена ​​несовместимая версия pkg, как удалить (или исправить иным образом)?

Это не вопрос heredocs. Если бы вы побежали:

ssh -i ${ssh_key} ${ssh_user}@${host} sh -c '
  file=`hostname`.tar.gz
  echo "file: " $file
'

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

Итак, вместо этого сделайте:

file=$(ssh -i ${ssh_key} ${ssh_user}@${host} hostname).tar.gz
scp -i ${ssh_key} ${ssh_user}@${host}:${file} ~/incoming
1
13.03.2018, 20:47
1 ответ

pkgng имеет несколько запасных вариантов:

  • Существует статически -связанная версия, доступная как pkg-static.
  • Вы можете снова запустить инструмент установки, явно указав /usr/sbin/pkg bootstrap -f.

Вам нужно сказать pkgиспользовать репозиторий FreeBSD 10.1. Поскольку в вашем конфигурационном файле указано latest, он использует репозиторий FreeBSD 10.3, программное обеспечение которого содержит различные неопределенные ссылки на библиотечные функции, которых нет в 10.1 или более ранних версиях, включая openatи utimensat. ABI версии 10.1 не имеет прямой совместимости с версией 10.3.

Это можно сделать, изменив соответствующий .confфайл в /usr/local/etc/pkg/repos/, указав конкретный выпуск вместо latest, а затем повторно -загрузив pkg.

Или вы можете скомпилировать свой собственный в дереве портов. Но вы все равно будете получать другое программное обеспечение 10.3 из latest, если вы это сделаете.

Дополнительная литература

2
27.01.2020, 23:32

Теги

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