4

В Windows у меня есть папка C:\msys32 (содержащая то, что я считаю установкой MSYS2), созданная для / средой разработки ESP32 (находится в ~ / esp). Домашняя папка MSYS содержит мое имя пользователя Windows.

Теперь, когда я копирую эту установку на другой компьютер, эта папка внезапно меняет имена, которые меня беспокоят, так как это не "моя папка", это просто имя, чтобы обойти требование Linux, оно может быть исправлено ( каноническое) имя, такое как "пользователь".

Что еще более важно, это означает, что моя установка не переносима. Когда я копирую папку msys32 на другой компьютер, все либо ломается, либо не имеет никакого смысла. Для меня было бы лучше, если бы это имя пользователя было просто удалено из пути, но я возьму второе, то есть дать ему фиксированное имя. Как я могу это сделать?

PS Я понимаю, что цель msys - воссоздать среду Linux, но учтите, что "многопользовательский" - это динозавр в современном мире, где большинство людей "многопользовательские".

3 ответа3

0

Для моих нужд было достаточно отредактировать «db_home: /home /user» в «C:\msys32\etc\nsswitch.conf» перед запуском mingw32.exe.

После запуска ming32.exe будет создан каталог c:\msys32\home\user с обычными файлами в нем. Это новая домашняя папка. Теперь все пути в пользовательском пространстве являются константами, и установки могут быть заархивированы и скопированы на другой ПК, и все проблемы установки исчезнут.

0

Я не совсем уверен, что делать со «все или ломается, или не имеет никакого смысла», и если я могу помочь вам с этим.

Относительно различных профилей пользователей, домашних путей, имен пользователей и того, как они связаны друг с другом. Имейте в виду, что каждая учетная запись локального пользователя в Windows всегда уникальна, вы можете войти на две машины Windows с одинаковым именем учетной записи и одним и тем же паролем, но их идентификаторы безопасности всегда разные. Это обычно не имеет значения для вас, только потому, что разрешения для файлов по умолчанию установлены для "Прошедших проверку" и подобных абстрактных групп.

Точно так же в Unix вы обычно заботитесь о содержимом вашей домашней папки и правах доступа к файлам, кроме того, что имя пользователя или базовый UID не представляют большой проблемы, это просто имя, которое вы должны указать при входе в систему.

Если "ESP32" не сделал что-то странное с файлами конфигурации /etc , все должно работать, независимо от того, какое имя пользователя отображается в приглашении, поэтому установка %HOME% через системные свойства Windows - мой предпочтительный подход для указания моего собственного домашнего каталога, поскольку программы как и сборка Windows в Emacs, также учитывайте этот параметр. Если вы хотите полностью автономное портативное решение для ровно одного пользователя, то /etc/nsswitch.conf должен выполнить эту работу.

Подробная информация:

PS: Msys - это среда сборки, основанная на cygwin, которая помогает порту gcc и друзьям в Windows (вместе именуемым mingw) создавать программное обеспечение для Windows, теоретически кроссплатформенное, но в основном построенное на Unix и использующее инструменты Unix для сборки. Вот и все. Cygwin стремится намного выше этого, и если вы хотите, например, запустить ssh-сервер с разделением привилегий, то Cygwin де-факто перестает быть переносимым из-за таких вещей, как проблемы с правами доступа к файлам и отсутствие учетных записей.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .