Как удержать вино от создания каталогов в моем домашнем каталоге?

У меня есть установка для вина с парой игр, большинство из которых работают невероятно. Тем не менее, вино создает каталоги в моем доме для данных игрока, сохранения и т. Д.

Есть ли способ добавить их в ~ / .winesaves или что-то подобное? Я бы предпочел, чтобы вино не засоряло мой домашний каталог.

(wine: 1.5.27, рассматриваемая игра была SCII и DE: IW)


изменить, чтобы уточнить:

Все в ~ /. Wine - это хорошо, но я не хочу, чтобы приложения создавали ~ / GameSaves или тому подобное.

5
задан 8 April 2013 в 01:08

5 ответов

Возможно, вам придется поэкспериментировать с опцией sandbox, представленной в winetricks, которая может помочь вам, поскольку все символические ссылки Wine на $HOME удалены, когда этот параметр применяется к стандартному WINEPREFIX с помощью winetricks sandbox. ,

Однако wine все еще имеет разрешения вашего пользователя в домашней папке, и часто при установке новой программы действие при установке может привести к удалению песочницы. Так что на самом деле это не настоящая «песочница», но она может быть полезна для вашего случая использования.

В официальном FAQ по вину отмечается, что:

У Winetricks есть глагол песочницы, который выполняет хотя бы частичную работу по изоляции программ Wine от остальная часть вашей системы. Он защищает от ошибок, а не от злого умысла. Это полезно, например, для сохранения игр от сохранения их настроек в случайных подкаталогах вашего домашнего каталога.

На официальной странице winetricks объясняется, что

Если вы хотите изолировать приложение, чтобы оно ничего не сохраняло в свой домашний каталог, вы можете попробовать «песочницу winetricks». Это удалит символические ссылки на ваш домашний каталог. Сделайте это перед сохранением любых данных, или вам придется скопировать старые сохраненные данные из вашего домашнего каталога в $ WINEPREFIX / drive_c / users / $ USERNAME.

Важные примечания

  • Вариант с песочницей Wine, вероятно, нужно будет использовать повторно, то есть включать его в скрипт запуска, который запускает winetricks sandbox, а затем запускает вашу игру, так как ряд вещей в wine может вызвать восстановление символических ссылок.

  • Папка сохранений, которую вы уже сгенерировали, необходимо будет переместить в ваш WINEPREFIX, например, /home/$USER/.wine/drive_c/users/$USER/"My Documents", чтобы вы могли возобновить игру. Если wine только что создал папку с именем ~/gamesaves, просто переместите эту папку в указанное выше место. В противном случае соблюдайте структуру каталогов; если папка для сохранения игры - ~/Documents/Syberia/save, убедитесь, что вы создали эквивалент в /home/$USER/.wine/drive_c/users/$USER/"My Documents".

  • Когда вы устанавливаете игру в будущем, убедитесь, что вы запускаете winetricks sandbox при запуске, чтобы игра автоматически начинала использовать ваш WINEPREFIX в качестве места сохранения, а не папка в вашей $HOME.

  • [Тысяча сто тридцать одна]
0
ответ дан 8 April 2013 в 01:08

Для меня работало создание обёртки вокруг wine, которая запустила wine с другим HOME. Например. Вы можете создать свой собственный ~/bin/wine (предполагая, что ~/bin находится в вашем PATH), который устанавливает:

#!/bin/sh
export "HOME=$HOME/.wine/home"
exec /usr/bin/wine "$@"

С пустым WINEPREFIX (~/.wine/), Wine создаст символическое ссылки на собственный частный домашний каталог в ~/.wine/home/.

Вы можете расширить это до нескольких оболочек для разных префиксов Wine (например, для 32-битных и 64-битных).

0
ответ дан 8 April 2013 в 01:08

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

Пример1. Вы хотите, чтобы у вина был доступ к ~/.wine, ~/Downloads, но больше ничего. Затем вы можете использовать эту команду:

bwrap --dev-bind / / --tmpfs ~ --bind ~/.wine ~/.wine --bind ~/Downloads ~/Downloads --new-session wine ~/.wine/path-to-your-program

В приведенной выше команде мы создаем новое пространство имен, связываем корень /, связываем файловую систему в памяти с ~ и свяжите две директории над ~. Любые изменения, сделанные за пределами этих двух каталогов, попадут в tmpfs и будут потеряны после выхода bubblewrap (и вашей программы).

Пример2. Вы не хотите сложных иерархий, вы просто хотите, чтобы все связанные с вином вещи жили в ~/.bubblewrap-wine-container. И больше нигде. В этом случае вы можете использовать:

bwrap --dev-bind / / --bind ~/.bubblewrap-wine-container ~ --new-session wine path-to-your-program-relative-to-this-directory

Если вы хотите запретить доступ в Интернет для любого из этих примеров, добавьте аргумент --unshare-net. Или, может быть, даже --unshare-all, чтобы посмотреть, запустится ли он. Обратитесь к документации пузырчатой ​​пленки для получения дополнительной информации.

0
ответ дан 8 April 2013 в 01:08

Wine сохраняет свою структуру каталогов в ~ / .wine для эмуляции структуры каталогов Windows, поэтому программы, работающие под Wine, по умолчанию не могут получить доступ к верхним уровням иерархии. Это зависит от конечного приложения (или игры), где оно хранит свои данные. Вы можете сделать символическую ссылку, чтобы разместить каталог .wine где-нибудь еще. Примерно так:

cd ~; sudo -s
mv .wine /var/cache/wine && ln -s /var/cache/wine ~/.wine

Объяснение этих команд: 1. Перейдите в свой домашний каталог. Станьте пользователем root. 2. Переместите каталог .wine в нужное место (в этом примере это / var / cache / wine, если успех делает мягкую (символическую [я советую вам прочитать 'man ln')) ссылку из / var / cache / wine to you_home_dir / .wine.

0
ответ дан 8 April 2013 в 01:08

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

Большую часть времени (по моему опыту), когда программа, пробегающая вино, получает доступ вне "~/.wine" папка, это делает так через символьные ссылки в "~/.wine" каталог. Например, у меня была установка установщика папка в моем корневом каталоге, когда действительно он пытался установить в "C:/users/user, называют/Моими Документы", которые винные перенаправления к "~/.wine/drive_c/users/user называют/Моими Документами". Оказывается, что "Мои Документы" вот являются на самом деле символьной ссылкой на мой корневой каталог, "~".

Так просто удаление символьной ссылки "Мои Документы" и создание папки "My Documents" в "~/.wine/drive_c/users/user называют/Моими Документы", добился цели для меня.

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

0
ответ дан 14 October 2019 в 14:26

Другие вопросы по тегам:

Похожие вопросы: