Спасибо за ответ. Мне пришлось сделать один обходной путь, создав собственный репозиторий Centos yum, который предоставил пакеты и вместо этого выдал команду yum downgrade в моем Dockerfile.
CentOS -Старый.репозиторий
[Centos-old]
name=CentOS-7.4.1708 - Base
baseurl=http://vault.centos.org/7.4.1708/os/x86_64/
gpgcheck=0
#gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7-old
А также использование этого репозитория и отправка его в образ докера перед выполнением понижения
FROM centos/systemd
ENV container docker
COPY CentOS-Old.repo /etc/yum.repos.d/
RUN yum -y downgrade openldap-2.4.44-5.el7.x86_64
RUN yum -y install openldap-servers-2.4.44-5.el7.x86_64 openldap-clients-2.4.44-5.el7.x86_64
CMD ["/usr/sbin/init"]
TLDR:
sudo chmod +x /lib/systemd/user-environment-generators/90gpg-agent && reboot
Лонгрид:
При открытии удаленных местоположений с помощью Nautilus демон gvfs -заботится о подключение к удаленной системе и монтирование ее файловой -системы в фоновом режиме.
gvfs управляется systemd. И systemd, кажется, управляет своей собственной средой независимо от того, что вы введете в ~/.profile
или ~/.bashrc
.
Как-то позже в сеансе, т.е. когда окно терминала bash было открыто, настройка среды ~/.profile
и ~/.bashrc
может быть доступна для только что запущенные процессы, но не с самого начала. я не совсем уверен как работает эта часть,но результирующие факты легко наблюдать:
Если вы посмотрите на окружение gvfs -daemon.service сразу после входа в систему, вы см. следующее:
# Get the PID of the running gvfsd
$ FIXME=$(systemctl --user show --property="MainPID" gvfs-daemon.service | grep -o '[0-9]*')
# Show the environment of the running gvfsd
$ tr "\0" "\n" < "/proc/${FIXME}/environ"
Вы увидите, что окружение намного меньше по сравнению с вашим bash. сеанс с помощью команды env
:Что еще более важно, нет SSH _AUTH _Переменная SOCK в среде процесса gvfsd.
Если сейчас перезапустить службу gvfs с терминала bash и посмотреть на снова окружающая среда:
$ systemctl --user restart gvfs-daemon.service
$ FIXME=$(systemctl --user show --property="MainPID" gvfs-daemon.service | grep -o '[0-9]*')
$ tr "\0" "\n" < "/proc/${FIXME}/environ"
Теперь присутствует переменная SSH _AUTH _SOCK, клиент SFTP, вызванный Демон gvfs -будет использовать сокет агента gpg --в качестве агента SSH и удаленные папки в Наутилус будет работать как положено.
Сопровождающие пакета Debian GnuPG знают об этом. задачу и сделал Сценарий генератора пользовательской среды systemd доступен по адресу
/lib/systemd/user-environment-generators/90gpg-agent
.
Однако исполняемый бит этого скрипта не установлен, и поэтому, вероятно, никогда не будет начал.
После создания исполняемого файла и перезагрузки системы SFTP-соединения открываются как ожидаемо с самого начала.
$ sudo chmod +x /lib/systemd/user-environment-generators/90gpg-agent
$ reboot
Примечание. :Во время исследования я несколько раз вводился в заблуждение, потому что среда продолжает меняться во время работы над системой. Чтобы быть уверенным, всегда делайте полная перезагрузка системы. Просто выйдите из сеанса Gnome и снова войдите в него, по-видимому, не сбрасывает все в то же состояние, что и сразу после системы Начало.