Bibelwort
07-07-2019, 19:04
Привет всем!
По роду работы у меня возник такой вопрос. Как правильно организовать установку и администрирование программ в Windows (Windows 7 и выше) для многопользовательской среды НЕ в стандартной директории Program Files, а, например, в ProgramData или в другой корневой директории, например, C:\opt\?
Вопрос обусловлен тем, что я работаю с научным ПО и программерским ПО для разработки (docker, python, gcc), которое преимущественно ориентировано на Linux. Однако кросс-платформенное ПО (которого все больше) еще не до конца поддерживает раличия в системах и в частности в файловой структуре. Например, оно не поддерживает пробелы в файловых путях, часто не поддерживает Unicode (кирилицу и т.п знаки) и даже порой "не любит" длинные имена директорий (больше 7 знаков) (это не старое ПО, просто оно с длинным бэкграундом из 80-х).
Для примера из нового массового ПО возьмем Anaconda для Python. Только относительно недавно стало возможным устанавливать ее в директорию с пробелами, хотя при этом разработчики не могут гарантировать, что все пакеты будут адекватно работать с такими директориями. Если устанавливать Conda для многопользовательской среды, то согласно документации это лучше делать в ProgramData. Действительно, эта директория защищена от записи для обычных пользователей и при этом она системная, а значит есть шанс, что она адекватно поддерживается UAC-ом и системами бэкапирования.
Собственно в этом и вопрос. Можно ли ставить программы, пришедшие из Linux в ProgramData вместо Program Files? Есть ли подводные камни? Корректно ли работают в этом случае UAC-виртуализация, реестр, бэкап и восстановление, нет ли подводных камней, связанных с безопасностью, и т.п системные вещи?
Ну а так как имя для ProgramData длиннее 7 символов, то можно ли сделать кастномную директорию, типа C:\opt, организованную подобным образом?
П.С. Отмечу, что речь идет именно о ПО, которое скомпилировано именно для Windows, но изначально пришло из Linux. Вопрос не о системах виртуализации типа WSL в Windows 10 и не о docker (который по большому счету работает через VirtualBox и тот же WSL), где Linux-программы исполняются на машине с Windows.
П.П.С. Тему поместил в ветку Windows 7, так как работаю пока что преимущественно с Windows 7, хотя вопрос актуален и для 10-ки
По роду работы у меня возник такой вопрос. Как правильно организовать установку и администрирование программ в Windows (Windows 7 и выше) для многопользовательской среды НЕ в стандартной директории Program Files, а, например, в ProgramData или в другой корневой директории, например, C:\opt\?
Вопрос обусловлен тем, что я работаю с научным ПО и программерским ПО для разработки (docker, python, gcc), которое преимущественно ориентировано на Linux. Однако кросс-платформенное ПО (которого все больше) еще не до конца поддерживает раличия в системах и в частности в файловой структуре. Например, оно не поддерживает пробелы в файловых путях, часто не поддерживает Unicode (кирилицу и т.п знаки) и даже порой "не любит" длинные имена директорий (больше 7 знаков) (это не старое ПО, просто оно с длинным бэкграундом из 80-х).
Для примера из нового массового ПО возьмем Anaconda для Python. Только относительно недавно стало возможным устанавливать ее в директорию с пробелами, хотя при этом разработчики не могут гарантировать, что все пакеты будут адекватно работать с такими директориями. Если устанавливать Conda для многопользовательской среды, то согласно документации это лучше делать в ProgramData. Действительно, эта директория защищена от записи для обычных пользователей и при этом она системная, а значит есть шанс, что она адекватно поддерживается UAC-ом и системами бэкапирования.
Собственно в этом и вопрос. Можно ли ставить программы, пришедшие из Linux в ProgramData вместо Program Files? Есть ли подводные камни? Корректно ли работают в этом случае UAC-виртуализация, реестр, бэкап и восстановление, нет ли подводных камней, связанных с безопасностью, и т.п системные вещи?
Ну а так как имя для ProgramData длиннее 7 символов, то можно ли сделать кастномную директорию, типа C:\opt, организованную подобным образом?
П.С. Отмечу, что речь идет именно о ПО, которое скомпилировано именно для Windows, но изначально пришло из Linux. Вопрос не о системах виртуализации типа WSL в Windows 10 и не о docker (который по большому счету работает через VirtualBox и тот же WSL), где Linux-программы исполняются на машине с Windows.
П.П.С. Тему поместил в ветку Windows 7, так как работаю пока что преимущественно с Windows 7, хотя вопрос актуален и для 10-ки