#linux #path
Вопрос:
Я хочу создать программу на машине A. Однако файл Makefile вызывает программу с машины B.
Как я должен определить или связать ПУТЬ от машины B к машине A? Есть ли какой-либо способ подключить папку с компьютера B на компьютер A в качестве диска, а затем добавить ПУТЬ?
Спасибо.
Ответ №1:
Вы смешали два вопроса: как скопировать (или смонтировать) файл (или каталог) с удаленного хоста и как задать ПУТЬ, чтобы ваш файл Makefile мог его найти.
Для первого: TLDR, вы должны использовать sshfs или scp. Длинная версия доступных опций:
- sshfs: Самый быстрый способ. Он просто устанавливает SSH-соединение с вашим хостом B, поэтому для него не требуется никакого специального сервера, кроме SSH. Однако он использует предохранитель, поэтому работает медленнее. Не требуется root, так как это решение для каждого пользователя.
- NFS: Для настройки NFS требуется некоторая работа, но как только она заработает, она обеспечит плавную интеграцию с вашей системой. Чтобы получить максимальную отдачу от NFS, вам необходимо настроить LDAP, Kerberos и карту идентификаторов NFS, даже если незашифрованная анонимная NFS все еще работает. Затем вам необходимо подключить сервер NFS к точке подключения всей системы. Наконец, вы можете просто работать с этой точкой монтирования, и это похоже на ваш локальный жесткий диск: разрешения просто работают. Требуется root, так как он должен быть смонтирован глобально. Лично я не рекомендую вам использовать этот подход, так как он слишком сложен для ваших требований. Рекомендуется использовать общий
/home
диск. - scp: Используйте scp для копирования одного файла с удаленного хоста без подключения файловой системы sshfs FUSE. Это тоже быстро.
- SMB: Я не часто им пользовался, но он такой же сложный, как NFS, и его интеграция разрешений не такая простая, как в NFS. Имейте в виду, что для этого требуется много усилий, особенно с разрешениями.
- FTP / HTTP / …: Все работает, и они проще, чем SMB или NFS, но все равно их сложно настроить (вам нужно настроить отдельный сервер), чем sshfs или scp.
Сложность: SMB gt; NFS gt;gt; FTP / HTTP gt;gt;gt; SCP / SSHFS (лучше всего соответствует вашим требованиям)
По второму вопросу, как только вы скопировали двоичные файлы на локальный хост или смонтировали удаленный каталог в локальную точку монтирования, вы можете просто установить переменную среды PATH примерно так lt;/directory/of/mountpoint/or/parent/directory/to/the/binarygt;:$PATH
. Это можно сделать в скриптах Makefile или оболочки (например export PATH=appended_path:$PATH
).
Надеюсь, это поможет.