Как изменить место установки “winget”?

Вопрос или проблема

Я хочу изменить путь установки winget (диспетчер пакетов для Windows) на D:\Program Files\{вставить имя папки}. Это команда, которую мне рекомендовали использовать в документации

winget install --id {вставить id программы} --location "D:\Program Files\{вставить имя папки}"

Но вместо этого он устанавливает файл в D:\Program

Таким образом, насколько я понял, он считывает расположение до пробела и создает папку до этого места. Чтобы убедиться, я использовал имя папки без пробелов, и оно установилось правильно.

Я изначально разместил этот вопрос на StackOverflow, но его пометили как аппаратное/программное обеспечение и сказали разместить его здесь, как это относится к этому?

Эта функция предложена в
Можно ли задать путь установки программного обеспечения? #489.

Ответ от 11 июля 2020 года был:

В Winget уже есть функция: используйте winget install Software.Name --location "C:\Folder\Software.Name"

Однако поддержка пока ограничена.

НО, у нас также появилась поддержка интерактивного режима winget install
Software.Name -i, который на данный момент является более безопасным вариантом, чем --location.

Опция location новая и, вероятно, содержит ошибки, и похоже, что вы нашли одну из них.

Возможно, лучшее решение – подождать, пока это будет исправлено, и добавить
отчет об ошибке на https://github.com/microsoft/winget-cli/issues.

Если решение -i не подходит, вы можете временно
вручную переместить содержимое папки с C на D и
заменить папку C символьной ссылкой на папку D.

Для получения дополнительной информации смотрите
Полное руководство по созданию символических ссылок (также известных как symlinks) в Windows.

вы можете использовать “Progra~1” для “Program Files” и “Progra~2” для “Program Files (x86)”. это ошибка, вызванная синтаксисом powershell или cmd, а не из-за winget. Вам нужно преобразовать ваш путь в любую форму без пробелов или специальных символов, это должно быть обычной привычкой, если вы не хотите сталкиваться с такими проблемами.

.

Ответ или решение

Изменение каталога установки Winget: Подробное руководство

Теория

Windows Package Manager "winget" предоставляет мощный инструмент для установки программного обеспечения. Однако, как и с многими инструментами, возникают проблемы совместимости и использования, особенно когда дело касается смены путей установки. В вашем случае, проблема, связанная с установкой в неверный путь, не редкость, особенно учитывая пробелы в путях, которые могут приводить к некорректной интерпретации командной строкой.

При использовании командной строки Windows или PowerShell, пробелы в путях могут вызывать проблемы, поскольку они интерпретируются как разделители. Чтобы избежать этого, нужно либо обернуть весь путь в двойные кавычки, либо использовать краткие имена путей. Например, "Program Files" может быть интерпретировано неправильно, если не применять соответствующие меры.

Кроме того, важно отметить, что поддержка параметра --location в winget является новой и не всеми программами поддерживается в полной мере. Это означает, что некоторые разработчики софта могут не предусматривать переопределение каталога установки через этот механизм, который еще может содержать ошибки или работать с ограничениями.

Пример

Рассмотрим пример: вы хотите установить программу через winget в "D:\Program Files\MyApp". Правильная команда будет:

winget install --id MyApp --location "D:\Program Files\MyApp"

Если пробелы приводят к установке в "D:\Program", нужно убедиться, что кавычки используются правильно. Альтернативно, можно использовать 8.3 имена путей:

winget install --id MyApp --location "D:\Progra~1\MyApp"

По состоянию на июль 2020 года, в ответе на запрос по функциям установки было предложено использовать интерактивный режим установки:

winget install MyApp -i

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

Применение

Для практического решения вашей проблемы, рассмотрите следующие подходы:

  1. Использование кавычек и 8.3-формата. Всегда используйте двойные кавычки для путей с пробелами или используйте 8.3 имена, чтобы избежать недоразумений с пробелами.

  2. Сообщение о проблеме. Если проблема повторяется, стоит сообщить о ней на GitHub в разделе проблем winget. В разделе можно поделиться как вашими наблюдениями, так и предложениями, что может ускорить решение проблемы.

  3. Избегание пробелов в пользовательских путях. Лучший подход – избегать путей с пробелами или специальными символами, что поможет предотвратить многие накладки.

  4. Использование символических ссылок. Если путём не удается установить приложение, установите его в дефолтное местоположение и переместите файлы вручную в желаемый каталог, затем создайте символическую ссылку:

    mklink /D "C:\Program Files\MyApp" "D:\Program Files\MyApp"

Символические ссылки могут помочь сделать приложения доступными по новому пути, что актуально для тех, у кого SSD на C: становится полностью занятым и требуется более свободное пространство на другом диске.

Для более наглядного объяснения и шага за шагом рассмотрения символических ссылок, вы можете обратиться к руководству по символьным ссылкам.

Заключение

Эти рекомендации должны помочь вам эффективно управлять установками, избегая проблем с пробелами в путях. Внимательное следование этим инструкциям обеспечит надежное управление установками через winget и минимизацию проблем, связанных с несовместимостью инструментов.

Оцените материал
Добавить комментарий

Капча загружается...