Мы настраиваем общий сетевой ресурс с Samba, который предназначен в качестве внешнего хранилища для сервера Linux (Fedora 35). Чтение и запись файлов работает, права вроде выставлены правильно. Но есть проблемы с двумя операциями, которые хотелось бы уметь делать. Оба они работают на одном компьютере, если целевой каталог не находится в общем ресурсе.
Первый использует общий ресурс для хранения сред Conda. Настройка примерно такая:
ln -s /mnt/share/$username/.conda /home/$username/.conda
conda create -n тестовая бутылка
(Возможно, вам придется добавить конда-кузница
для выполнения вышеуказанной команды, conda config --добавить каналы conda-forge
). Вторая команда прерывается с несколькими сообщениями, подобными этим:
CondaVerificationError: пакет для ncurses находится в /home/$username/.conda/pkgs/ncurses-6.2-h58526e2_4.
кажется поврежденным. Путь 'lib/terminfo'
указанный в манифесте пакета, не может быть найден.
SafetyError: пакет для ncurses находится по адресу /home/$username/.conda/pkgs/ncurses-6.2-h58526e2_4.
кажется поврежденным. Путь 'share/terminfo/E/Eterm'
имеет неправильный размер.
заявленный размер: 2224 байта
реальный размер: 842 байта
Conda пытается установить 25 пакетов, и только четыре из них выдают ошибки, что означает, что остальные, вероятно, устанавливаются нормально, но я не уверен, поскольку в конце не создается среда.
Вторая проблема с R. Когда пользовательская библиотека помещается на общий ресурс (ln -s /mnt/share/$username/R /home/$username/R
), установка некоторых пакетов (по-видимому, использующих поэтапную установку) завершается ошибкой.Например, если вы попытаетесь установить rlang
изнутри R с install.packages('rlang')
, в конце произойдет сбой с этим сообщением:
mv: невозможно переместить '/mnt/share/$username/R/x86_64-redhat-linux-gnu-library/4.1/00LOCK-rlang/00new/rlang' в '/mnt/share/$username/R/x86_64-redhat -linux-gnu-library/4.1/rlang': Отказано в доступе
ОШИБКА: не удалось перейти в конечное местоположение
Есть пакеты, которые устанавливаются без проблем. Эту конкретную проблему можно обойти, например. добавление такого параметра:
install.packages("rlang", INSTALL_opts = '--no-lock')
Но 1) было бы здорово не нуждаться в обходных решениях, и 2) не каждая программа, которую мы захотим использовать, будет иметь такое встроенное решение.
Так что мне интересно, это фундаментальное ограничение сетевых ресурсов или Samba в частности, или мы просто что-то упустили во время установки? Это smb.conf
, который в основном стоковый, модифицированный присоединение к области --membership-software=samba --client-software=winbind
, некоторые дополнительные настройки, рекомендованные документами Samba, и разрешения, установленные с компьютера Windows с помощью управления компьютером:
[Глобальный]
рабочая группа = ДОМЕН
безопасность = реклама
Серверная часть passdb = tdbsam
печать = чашки
название printcap = чашки
загружать принтеры = да
варианты чашек = сырье
метод kerberos = секреты и keytab
домашний каталог шаблона = /home/%U@%D
оболочка шаблона = /bin/bash
область = DOMAIN.LOCAL
Конфигурация idmap ДОМЕН: диапазон = 2000000-2999999
Конфигурация idmap ДОМЕН: backend = rid
Конфигурация idmap *: диапазон = 10000-999999
Конфигурация idmap * : backend = tdb
winbind использовать домен по умолчанию = нет
билеты обновления winbind = да
автономный вход в систему winbind = да
группы enum winbind = нет
winbind перечисление пользователей = нет
объекты vfs = acl_xattr
карта acl наследовать = да
хранить атрибуты dos = да
[Поделиться]
путь = /srv/доля
только чтение = нет
acl_xattr: игнорировать систему acl = yes