Думаю, вы столкнулись с проблемой типа "порядок операций". <
обрабатывается до выполнения команд, поэтому вы запускаете нечто похожее (хотя и не идентичное)
varname=$varname test2.sh | ssh user@111.222.333.444 bash
, которое запускает test2.sh
локально, а затем отправляет этот вывод в bash
на удаленном сервере. Вот почему вы видите вывод test2.sh
, но затем получаете сообщение об ошибке, когда он пытается выполнить этот вывод как команду.
Если вы запускаете исполняемый скрипт, вам действительно не нужен bash
, поэтому вы можете просто выполнить
ssh user@111.222.333.444 "varname=$varname ./test2.sh"
, предполагая, что test2.sh
доступен на удаленный сервер.
Если у вас нет test2.sh
на удаленном сервере и вы все еще хотите выполнить его там, вы можете сделать это так:
ssh user@111.222.333.444 varname="$varname" bash < test2.sh
который перенаправит исходный код скрипта, но выполнит обработку переменных в контексте исполняемого файла bash
Как вы говорите,
From that description, ii would mean the desired action is install but that the package is installed.
Это означает, что желаемое состояние пакета — «установлен», а текущее состояние пакета — «установлен». Поскольку оба совпадают, никаких изменений не требуется. В столбце действий не указываются действия , которые вам необходимо предпринять, в нем указываются действия, которые должна выполнять система пакетов — по сути, это означает, что вы попросили систему пакетов установить эти пакеты напрямую. или косвенно(через зависимости ).
Ничего не говорится о том, что пакет обновлен с -до -даты; вам нужно посмотреть на вывод
apt policy libgtk2.0-0 libgtk-3-0
, чтобы определить это.
dpkg-query
просматривает только локальную базу данных пакетов в /var/lib/dpkg/status
, поэтому он не знает о других версиях пакетов. APT — это инструмент, который имеет дело с репозиториями пакетов и знает, какие версии пакетов доступны (и кандидаты для установки ).
В выдержке из руководства сказано, что вы включаете в вопрос, это сказано в заголовке вывода.
Desired=Unknown/Install/Remove/Purge/Hold
| Status=Not/Inst/Conf-files/Unpacked/halF-conf/Half-inst/trig-aWait/Trig-pend
|/ Err?=(none)/Reinst-required (Status,Err: uppercase=bad)
||/
Desired action:
i = Install
Package status:
i = Installed
Возможно, вы не понимаете -значение столбца в руководстве. Здесь они означают один символ. Также я думаю, что в руководстве есть небольшая ошибка. Там написано desired action
, но я думаю, что это означает desired state
.