me@MYFIRSTNAME-Ubuntu:~$ cd ~/tux*
me@MYFIRSTNAME-Ubuntu:~/tuxlol-0.1-dd62ba8-bin$ mono tuxlol.exe patch --dir "~/.PlayOnLinux/wineprefix/LeagueOfLegends/drive_c/Riot\ Games/League\ of\ Legends/"
The specified directory is invalid.
me@MYFIRSTNAME-Ubuntu:~/tuxlol-0.1-dd62ba8-bin$ ll
total 384
drwxrwxr-x  2 me audio   4096 sep 29  2013 ./
drwx------ 27 me me      4096 apr  5 16:03 ../
-rw-rw-r--  1 me me     84480 sep 15  2013 CommandLine.dll
-rw-rw-r--  1 me me    225280 sep 15  2013 ICSharpCode.SharpZipLib.dll
-rw-rw-r--  1 me me     11264 sep 29  2013 tuxlol.exe
-rw-rw-r--  1 me me       933 sep 15  2013 tuxlol.exe.config
-rw-rw-r--  1 me me     15872 sep 29  2013 Xargoth.TuxLoL.Core.dll
me@MYFIRSTNAME-Ubuntu:~/tuxlol-0.1-dd62ba8-bin$ cd ~/.PlayOnLinux/wineprefix/LeagueOfLegends/drive_c/Riot\ Games/League\ of\ Legends/
me@MYFIRSTNAME-Ubuntu:~/.PlayOnLinux/wineprefix/LeagueOfLegends/drive_c/Riot Games/League of Legends$ ll
total 208
drwxrwxr-x 4 me me     4096 apr  5 16:04 ./
drwxrwxr-x 3 me me     4096 apr  5 02:08 ../
drwxr-xr-x 4 me audio  4096 apr  5 16:06 Logs/
-rwxrwxr-x 1 me me    90112 apr 26  2011 lol.launcher.admin.exe*
-rwxrwxr-x 1 me me    90112 apr 28  2011 lol.launcher.exe*
drwxrwxr-x 7 me me     4096 apr  5 16:06 RADS/
me@MYFIRSTNAME-Ubuntu:~/.PlayOnLinux/wineprefix/LeagueOfLegends/drive_c/Riot Games/League of Legends$ 

I tried to install one of the games that I play. This is not "patch" as in program that cracks programs for free usage, game I'm installing is totally free, but according to many many tutorials, Wine "can't handle mipmaps smaller than one block", so it needs that program called "TuxLoL.exe" to be executed. I know that surely none of you play this game or even need it, but maybe there's something wrong with permission, settings or any other things that might say "no" to TuxLoL? I posted shell actions above.

I went Googling for solution, there are other people that had the same problem, but they either solve it by another command, which produces same result for me, or they say "follow [this] tutorial! if you follow, it will work", but it's either tutorial I just used, or another copy of another copy from the one that my tutorial has been copied off.

No real solution found. Is this error of TuxLoL, Ubuntu, the game, or mine (most likely)? And is there a way to fix it?

Dani AI

Generated

This looks like a classic interplay of shell expansion, permission/environment differences when using sudo, and how a Windows-built .exe sometimes validates paths. was partly right — quoting handles spaces — but putting a quoted tilde prevents the shell from expanding it to the home directory. later tried an absolute path with sudo, so quoting alone is not the full story.

Quick checks to rule out shell/permission issues:

  • Verify the shell actually sees the folder and that the running account can read it. A couple of simple commands will show the difference between an unquoted tilde, a quoted tilde, and $HOME:
    echo ~
    echo "~"
    echo "$HOME"
  • Avoid running the tool with sudo. Sudo changes HOME and other environment variables and can make the program look in the wrong prefix or change file ownership inside the PlayOnLinux prefix.

Is it a path-format problem (Linux vs Windows)? Many Windows .exe tools perform internal validation that expects Windows-style paths or a C: drive. Two practical tests that often isolate the cause:

  • Create a short, no-space symlink to the game folder and pass that path to the patcher (this rules out space/escaping problems):
    ln -s "$HOME/.PlayOnLinux/wineprefix/<prefix>/drive_c/<game_dir>" "$HOME/lol_game"
    ls -ld "$HOME/lol_game"
  • Try running the .exe under Wine using the PlayOnLinux prefix and supplying a Windows path (this checks whether the binary expects C:\ style paths):
    WINEPREFIX="$HOME/.PlayOnLinux/wineprefix/<prefix>" wine /path/to/tuxlol.exe "C:\\Riot Games\\League of Legends"

If those still fail, capture what the program actually tries to open (stderr and file-access syscalls) and inspect the logs:

# capture stderr
/path/to/mono-or-wine-run 2>&1 | tee tuxlol.log

# trace file syscalls (shows which filenames are checked)
strace -f -e trace=file /path/to/mono-or-wine-run &>strace.log

Caution: do not run PlayOnLinux/Wine tasks as root and avoid changing ownership inside the wineprefix. If the tool accepts the symlink but not the original path, the issue is escaping/space-related; if it only accepts a Windows-style path under Wine, the binary is doing Windows-only validation and running it with WINEPREFIX is the reliable fix.

Recommended Answers

All 2 Replies

On Linux systems, double quoting a directory or file name will deal with the spaces. IE, your adding "\ " values to the string are problem causing this error. So, the string probably should be this: "~/.PlayOnLinux/wineprefix/LeagueOfLegends/drive_c/Riot Games/League of Legends/"

me@MYFIRSTNAME-Ubuntu:~/tuxlol-0.1-dd62ba8-bin$ sudo mono tuxlol.exe patch --dir "/home/me/.PlayOnLinux/wineprefix/LeagueOfLegends/drive_c/Riot Games/League of Legends/"
The specified directory is invalid.
me@MYFIRSTNAME-Ubuntu:~/tuxlol-0.1-dd62ba8-bin$ 

Darn it!

commented: sudo make me a sandwich +14
Be a part of the DaniWeb community

We're a friendly, industry-focused community of developers, IT pros, digital marketers, and technology enthusiasts meeting, networking, learning, and sharing knowledge.