Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Клиентские ОС Microsoft » Microsoft Windows 7 » Установка - [решено] Установка программ в C:\ProgramData

Ответить
Настройки темы
Установка - [решено] Установка программ в C:\ProgramData

Новый участник


Сообщения: 10
Благодарности: 0

Профиль | Отправить PM | Цитировать


Привет всем!
По роду работы у меня возник такой вопрос. Как правильно организовать установку и администрирование программ в 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-ки

Отправлено: 19:04, 07-07-2019

 

Аватара для Avatar-Lion

Support L1+


Contributor


Сообщения: 5348
Благодарности: 1078

Профиль | Отправить PM | Цитировать


Я бы на вашем месте именно в отдельный каталог ставил всё. Вроде того, как вы предложили (C:\opt), чтобы точно не было проблем с правами, пробелами и прочей ерундой. Формально ProgramData тоже подходит под ваши нужды, но там много кто хранит свои настройки: система, программы, игры, драйвера... Короче, вы сами же запутаетесь в итоге где ваше, а где не ваше. Шлёпните случайно подкаталог не тот какой-нибудь в этой ProgramData и будете потом с глюками на ровном месте разбираться. Вам оно надо? Реально, организуйте отдельную папку и туда скидывайте всё необходимое ПО.

Насчет бэкапа - это уж сами смотрите. Если настроен бэкап только отдельных каталогов типа C:\Windows, то вашу C:\opt придется добавить в список того, что нужно бэкапить. Если же архивируется весь диск С: целиком, то ничего делать не нужно. UAC вас беспокоить не должен, ибо с точки зрения системы C:\opt является обычной папкой и UAC мешать должен не больше, чем при работе с любой другой директорией. Реестр тут вообще никаким боком. Если ваше ПО вносит в реестр записи о путях установки, то ему без разницы какой путь прописывать - ProgramData или opt.

Отправлено: 19:23, 07-07-2019 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Новый участник


Сообщения: 10
Благодарности: 0

Профиль | Отправить PM | Цитировать


Avatar-Lion, да, согласен, что можно нарваться на проблемы с именами. Некоторые GUI-программы, написанные с использованием Qt хранят свои настройки в системных и пользовательских папках..
А как тогда правильно настроить права на эту кастомную папку? По умолчанию, если создать в корне директорию, то у нее в настройках прав для группы Authenticated Users ставятся полные права, то есть все пользователи смогут туда писать. Правильно ли я понимаю, что для этой папки лучше настроить права аналогичные Program Files? (Правда там есть непонятные для меня trusted installer, CREATOR OWNER, SYSTEM и ALL APPLICATION PACKAGES).
В данном случае мне наоборот нужно защитить эту папку от влияния пользователей (прямого или косвенного через саму программу), чтобы если приложение захочет сохранить настройки или другие файлы в свою папку, то UAC направит ее в AppData конкретного пользователя (это я все прочитал у Вадима Стеркина здесь). То же относится и к реестру - программа может писать настройки в системную ветку, а может в пользовательскую - в моем случае хотелось бы, чтобы в пользовательскую.

Отправлено: 19:44, 07-07-2019 | #3


Ветеран


Сообщения: 27449
Благодарности: 8087

Профиль | Отправить PM | Цитировать


Bibelwort, можно устанавливать и в C:\PROGRA~1 (обычно так), если не отключено создание коротких имён формата 8.3.

Цитата Bibelwort:
- в моем случае хотелось бы, чтобы в пользовательскую. »
Куда оно будет писать — зависит только от самого приложения.

Отправлено: 22:15, 07-07-2019 | #4



Компьютерный форум OSzone.net » Клиентские ОС Microsoft » Microsoft Windows 7 » Установка - [решено] Установка программ в C:\ProgramData

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Разное - Пухнет одна из подпапок в c:\ProgramData\ Volchek Microsoft Windows 7 1 20-09-2017 15:49
Разное - \ProgramData\Package Cache\ на другом разделе? yurikoles Microsoft Windows 8 и 8.1 0 13-04-2015 02:07
Установка - Установка программ Scorpionhitech Microsoft Windows 7 10 14-08-2013 12:08
Доступ - [решено] отсутствует доступ к сетевой папке ProgramData\C:\ProgramData\Microsoft\Windows\Start k86-1 Microsoft Windows 7 3 30-12-2012 23:56
Доступ - [решено] Произошла ошибка при создании каталога C:\ProgramData\Microsoft\Windows\Start Menu chechet4 Microsoft Windows 7 4 10-04-2011 03:23




 
Переход