How to know the location of lualatex.exe? - windows

The TexLive system uses lualatex. I have an application that needs to know the location of lualatex.exe.
Now, if lualatex is in the PATH evnvironmental variable, I'm in luck. If it isn't there, then I have to go and do a full-computer file-search for the file.
Is there another way I could find it?
I mean, is there some lualatex registry value or directory that is standard in every installation?
[update]
Okay, I have found a certain standard; if TexLive is installed, in the %userprofile% directory, there will be directories for .texlive2012 or .texlive2013 - I wonder if there is a way to use that knowledge to find the installation directory. The contents of those folders do not reveal anything, however.

It depends on what LaTeX installation you are using. If it's MikTeX (under 64 bit Windows) it will be in
C:\Program Files\MiKTeX 2.9\miktex\bin\x64\
So I think it will always be in "the bin folder".

Related

Dart-Sass not being added to PATH

So, I've downloaded the .zip 1.32.11 Windows x64 release from the Dart-Sass's Github repo and extracted it to the Program Files folder. Using the steps provided, I found Path under System variables in Step 4. There was no PATH there, the closest thing was PATHTEXT and Path. My first question: Can I use Path or I have to create a new System variable called PATH. Thinking Path was sufficient, I decided to edit the System variable and then press Browse to search for the Dart-Sass folder. After this was done, I went to Command Prompt and typed sass -version. The result was that Sass was not recognized. Did I do anything wrong? If so, what can I do to fix it?
I'm noticing two things about your problem. The first is your path variable... did you make sure to change Me to your username in the PATH variable?. The second encompasses your installation. Can you find the dart *.exe file? If not, try uninstalling and reinstalling, making sure each step is completed word for word.

Two vimfiles directories. Where do I install my plugins?

I'm using Windows 10.
I want to give Vim another shot after having some troubles with it in the past. I'm eager to learn it, but I'm confused. I gave a pretty thorough search to find my answer before I resorted to posting this here, but what is the proper way to install my vim plugins. I see two vimfiles folders in two different directories.
One in the $HOME directory.
C:\User\[USERNAME]\vimfiles
And one in the installation directory.
C:\Program Files (x86)\Vim\vimfiles
Is there a reason for there being two of these ? What's the best directory to install my plugins ?
It is related to 'runtimepath' param. Read :help 'runtimepath' for more info . C:\Program Files (x86)\Vim\vimfiles is system folder with default plugins which are shipped with vim itself. C:\User\[USERNAME]\vimfiles is your local runtimepath. And there you should put your plugins. This way if you have multiple users they all will have own vim environment to work in. If you want you can even set different runtimepath but this is whole another question))
C:\User\[USERNAME]\vimfiles is your vim runtime files and C:\Program Files (x86)\Vim\vimfiles is Vim's runtime files. As long as a feature is present in your vim runtime files and vim request it, it will load them and if its not present there, then it will fallback to his runtime path to find it (i.e. C:\Program Files (x86)\Vim\vimfiles ). So you should always install your plugins, colorschemes, syntaxes, ... in your vim runtime files and also back it up in a safe place and never touch vim's runtime files.

Windows programmers, is it a good habit to install to C:\Windows?

I primarily develop on Linux where there is /usr/bin and /bin directories. I know that Windows does not have any real equivalent of either of these besides C:\Windows and C:\Windows\System32. Many command line programs that I port to windows, I simply will write an installer that will copy them to C:\Windows, because I do not feel like having to set a PATH variable. I know that the proper way is to set a PATH variable, but to me C:\Windows is == to /usr/bin. What do Windows programmers have to think about this? Is this a good habit, is there any real disadvantages, and should I actually install to Programs Files and set a path variable via the registry instead?
Install to Program Files (or even the user's AppData folder for user-specific installs), and provide an option to add the directory to %PATH%.
Installing to Program Files has a number of advantages:
Won't conflict with any other files that happen to be in C:\Windows
Won't override some other tool already on the user's PATH
Makes the components of your program more obvious, instead of a random scattering of files in C:\Windows
Avoids dependency conflicts (DLL hell) if you need to include your own DLLs
Giving users the option to add to %PATH% allows users to skip that step if they run into some other kind of conflict with your app (which is less likely with Program Files, but still possible). If you installed into C:\Windows, you'd have no way to avoid such conflicts.
You should install applications to the proper Program Files directory, generally; there are exceptions though. And there are numerous Environment Variables already set for numerous paths on Windows, %PROGRAMFILES% being one of them (and %PROGRAMFILES(X86)% being another, hence 'appropriate' path).

MSI Installer, 64 bit OS, write to \windows\system32\inetsrv folder

On Windows Server 2008 64-bit, I need an .msi installer file to write some files to \windows\system32\inetsrv folder. (The files are some XML Schema validation files, that C# XmlReaderSettings.Schema.Add() expects to be in that folder).
When the installer runs, the files end up in \windows\SysWOW64\inetsrv folder, not where they need to be.
I attempted to have the installer then write to \windows\Sysnative folder, and the installer created a folder with that exact name, which I didn't expect to be possible. See this page for a good discussion on suppressing SysWOW64 redirection.
How should I get the .msi to write my files to the \windows\system32\inetsrv folder on Windows 2008 64-bit?
Here are the system folder properties you can use. I know it is counter-intuitive, but have you tried System64Folder? Read the remarks.
If that doesn't work, try just tacking System32 on to the end of WindowsFolder.
Edit-1: Try setting the Win64 attribute on your Component element and see if the redirection behavior changes.
I tried to use Sysnative in wxs file but I got the same result: create a Sysnative folder under Windows instead of using System32.
So I used Sysnative in a vbscript CA: found the Windows folder (&H24&) and append \Sysnative. This works, but a second CA is needed to delete the files during uninstall.
I solved my problem by writing the files to \windows, rather than \windows\system32.
It turns out that the C# XmlReaderSettings.Schema.Add() will work with a fully qualified path under the \windows directory. It just defaults to the system32 folder if the path supplied is not fully qualified.
This isn't really an answer to the question, but it is a work-around for my immediate needs.

How do I install the D programming language into C:\Program Files?

The prompt says that if I install the software into a directory with spaces:
the rebuild build tool used by the D Shared Source System will fail to build
and that I will be
forced to reinstall in a different location
However, I don't like random things in my C:\ drive. D, IMO, belongs in Program Files with PHP and MinGW and so on. How can I get it here?
If it matters, I'm using the Easy D installer package.
You can also use NTFS Link to create junction points (symlinks for all intents and purposes) and hard links on NTFS file systems. The functionality is built into the NTFS drivers, but an interface was never implemented for it, presumably to avoid things like recursive directory structures (endless virus scan loops anyone?). This package exposes an interface to this functionality.
I'd then create a symlink from C:\Program Files\ to something like C:\ProgramFiles\, hence disposing with the problematic space. This means that anything added to one directory will be added to the other, because both directories point to the same place on disk.
More info on NTFS Junction Points.
Info on NTFS symlinks (Vista only, but doesn't need NTFS Link to be installed.)
You could try using the old DOS 8.3 name for the Program Files directory, although this solution is implementation- and locale-dependent, and thus somewhat deprecated. On most US English systems, the 8.3 name of the C:\Program Files directory is C:\PROGRA~1. So, instead of installing to "C:\Program Files\dmd", you'd install to "C:\PROGRA~1\dmd". Hopefully, the configuration files for the misbehaving programs won't know the difference.
You could install it into C:\Program Files, and then use the subst command to make it appear as a new drive letter:
subst x: "c:\program files\d"
I actually use a "c:\Programs" for situations such as this - quite a few applications don't work well in directories with spaces in them.
It doesn't cause confusion since it's different enough from "c:\Program Files" - earlier attempts used "c:\ProgramFiles" (without the space) but this was too similar.
I have a C:\Dev folder on my machine for things like this. That way you only have one folder on the main directory and it stays unclutered.

Resources