LINUX.ORG.RU
решено ФорумGames

Origin

 , , , ,


6

4

Дарю инструкцию для интересующихся:

$ mkdir -p ${HOME}/Origin

В директории Origin создаём файл hchmod.c с содержимым:

#include <dlfcn.h>
#include <sys/stat.h>
#include <unistd.h>

int (*mkdir_real)(const char *pathname, mode_t mode) = NULL;
int (*chmod_real)(const char *pathname, mode_t mode) = NULL;
int (*fchmod_real)(int fd, mode_t mode) = NULL;

int mkdir(const char *pathname, mode_t mode){
  if ( mkdir_real == NULL ){
        mkdir_real = dlsym(RTLD_NEXT,"mkdir");
  }
return (mkdir_real(pathname, mode | S_IWUSR ));
}

int chmod(const char *pathname, mode_t mode){
  if ( chmod_real == NULL ){
        chmod_real = dlsym(RTLD_NEXT,"chmod");
  }
return (chmod_real(pathname, mode | S_IWUSR ));
}

int fchmod(int fd, mode_t mode){
  if ( fchmod_real == NULL ){
        fchmod_real = dlsym(RTLD_NEXT,"fchmod");
  }
return (fchmod_real(fd, mode | S_IWUSR ));
}
Собираем:
$ cd ${HOME}/Origin
$ gcc -shared -fPIC -D_GNU_SOURCE -o hchmod.so hchmod.c -ldl
Если вы уже безуспешно пытались установить Origin, то надо поправить права на папку:
$ chmod 755 "${HOME}/.wine/drive_c/Program Files (x86)/Origin"
или удалить её:
$ rm -R "${HOME}/.wine/drive_c/Program Files (x86)/Origin"
Качаем и устанавливаем Origin
$ wget https://download.dm.origin.com/origin/live/OriginSetup.exe
...
$ export LD_PRELOAD=${HOME}/Origin/hchmod.so 
$ wine OriginSetup.exe

Upd.: когда-то была ошибка входа, помогало это:

$ export LC_TIME=en_US.UTF-8
$ cd "$HOME/.wine/drive_c/Program Files (x86)/Origin/" 
$ wine Origin.exe

Ответ на: комментарий от LINUX-ORG-RU

А как ты до этого допёр?

Не пойму как за столько времени до этого не допёрли другие:

$ ls -l "${HOME}/.wine/drive_c/Program Files (x86)/"
итого 20
drwxrwxr-x 3 user1 user1 4096 июл  8 12:34 'Common Files'
drwxrwxr-x 2 user1 user1 4096 июл  8 12:34 'Internet Explorer'
dr-xr-xr-x 2 user1 user1 4096 июл  8 12:35  Origin
drwxrwxr-x 2 user1 user1 4096 июл  8 12:34 'Windows Media Player'
drwxrwxr-x 3 user1 user1 4096 июл  8 12:34 'Windows NT'

superuser ★★★ ()
Ответ на: комментарий от i-rinat

А как fakeroot может помочь от принудительного выставления прав? точнее - от принудительного забора прав на запись в каталог, перед тем как в тот каталог надо писать?

superuser ★★★ ()
Ответ на: комментарий от superuser

Да я вспомнил, что руту можно многое, что нельзя обычному пользователю, в том числе и писать в директорию, в которую по правам никому нельзя писать. Вот и подумал, раз fakeroot какие-то там дополнительные действия предпринимает, кроме игнорирования ошибок в chown и chmod, может среди них есть какой-то обход ситуации с отсутствующим правом на запись в каталог.

i-rinat ★★★★★ ()