Версии
java-1.8.0-openjdk-devel
и java-1.8.0-openjdk
должны точно совпадать.
короче:
yum downgrade java-1.8.0-openjdk-1.8.0.161-2.b14.el7
yum install java-1.8.0-openjdk-devel-1.8.0.161-2.b14.el7.x86_64.rpm
Я только что написал полный ответ на этот вопрос здесь:https://stackoverflow.com/questions/57498755/installing-python36-devel-on-rhel7-failing/57519956#57519956
Чтобы получить статус выхода команды, вам нужно wait
на ее идентификаторе процесса. Вы можете увидеть это и разницу между статусами на этом примере:
coproc mytr { tr a b; exit 2; }
rc=$? fdi=${mytr[0]} fdo=${mytr[1]} pid=$mytr_PID
echo "rc=$rc fdi=$fdi fdo=$fdo pid=$pid"
echo aaa >&$fdo
exec {fdo}>&-
cat -v <&$fdi
wait $pid
echo $?
Мы запускаем именованный coproc mytr
, который переводит a в b и после чтения eof завершает работу с кодом возврата 2. Следующее эхо показывает, что эта команда coproc имеет код возврата 0, успех, и что bash установил массив mytr
во входящие и исходящие файловые дескрипторы процесса.PID находится в переменной mytr_PID
, которую мы копируем, так как она исчезнет, когда завершится процесс co-.
Мы отправляем строку "aaa" в coproc, затем закрываем вход fd с синтаксисом {variable}>&-
. Мы читаем вывод команды tr
, то есть «bbb», и ждем завершения процесса. Код выхода wait
— это код выхода процесса. Вывод
rc=0 fdi=63 fdo=60 pid=8137
bbb
2
Примечание. :fdo и fdi видны родительскому процессу, следовательно, эхо-сигнал для fdo является выходом на вход дочернего сопроцесса .