6

Note: this question is very similar to mine, but the answer states

I would recommend you to install the full TeXLive manually (i.e. not using the Ubuntu packages) with both Linux and Windows binaries to the shared drive.

and I'm after more detail on how to do this on my Windows 7/Ubuntu 14.04 installation.


I have a Windows 7 system with TeXLive installed at TEXDIR = C:/texlive/2014.

I now want to install TeXLive on Ubuntu, using the existing Windows texlive installation, and without having to redownload the packages and duplicate hard drive space. (Of course things like binaries will not be shared with Windows; this is fine. But I would think that most of the packages are the same between Windows and Linux and hence don't need to be downloaded twice).

My Windows C: drive is mounted at /windows on the Linux side.

I ran the Linux installer and set my TEXDIR to point to /windows/texlive/2014 and verified that the other directories are all pointing to the existing install.

However, when I proceed with the installation, it appears that all the package files are being redownloaded: I can verify this by watching iftop, and I can see that package files *.tar.xz are being downloaded into $TEXDIR/temp.

For now the installation process is aborted in the download stage (I don't have reliable enough internet to do the downloads, or enough quota), so I am not sure if the packages are actually installed twice, as opposed to being downloaded and then the installer says "oh, the package is already installed, I won't reinstall".

So, how can I tell texlive to not re-download/re-install packages if they already exist in my Windows texlive installation?

(Or is /nothing/ shared between a Windows and Linux texlive installation? I assumed that at least most of the packages would be).


Update: had a look at the --no-depends-at-all option from the tlmgr help:

Normally, when you install a package which ships binary files the respective binary package will also be installed. That is, for a package foo, the package foo.i386-linux will also be installed on an i386-linux system. ...

So it looks like what I want is the reverse: I want to install foo.i386-linux but not foo (because I already have it); is this possible or do I misunderstand how the packages work (quite likely)?

  • 1
    In your Windows installation, use tlmgr to install the binaries for GNU/Linux. Just make sure that you get 32 or 64 bit as appropriate. Then when you boot into GNU/Linux, adjust your PATH and you should be good to go. – cfr Jul 10 '14 at 1:52
  • Did you regard the fact that Windows 7 has the NTFS system and that write access to such a system from Linux side is 'stable' but still a little bit experimental. As long it involves only read access to packages and font data, this is no problem, but if for example there are some fonts to be generated while being on Linux, it could be problem. – user31729 Jul 10 '14 at 4:46
  • 1
    @ChristianHupfer Generated fonts (bitmaps) aren't saved into the texmf tree (otherwise things would go wrong if the end-user didn't have write access irrespective of dual boot): they are saved on a per-user basis. – Joseph Wright Jul 10 '14 at 6:28
  • @JosephWright: Ok, I always thought that there is some /tmp or other directory with write access even for normal users within texmf tree and that fonts are cleaned up/stored in the correct directory on next rehash. Thanks for keeping me informed. – user31729 Jul 10 '14 at 8:10
  • 2
    tlmgr platform list will show you which platforms are supported and which are installed. tlmgr platform add x86_64-linux would add the binaries for 64 bit GNU/Linux. Note that I do not have a dual boot system so this is based on a theoretical understanding based on the documentation. (That is, it is untested.) When initially installing TL, you can choose the platforms you want installed. However, that will re-download everything. Adding an additional platform with tlmgr will not do that. Note this may not work on NTFS since it does not support symbolic links which GNU/Linux uses. – cfr Jul 10 '14 at 18:22
1

If you are happy with experimenting a bit, I suggest to proceed as follows. Disclaimer: I don't have a dual boot machine, I kicked Windows off my Laptop years ago.

Install texlive under windows and test it. Then boot into Linux and start the installation of texlive. Cancel the installation process after some minutes. Now, you have a TDS compliant structure, but the content is missing. EDIT: Delete all files and folders inside /texlive/2014/texmf-dist/tex/latex and /texlive/2014/texmf-dist/doc (not in your Windows folder, I'm speaking only of the Linux side!).

Then make two links:

  1. link from .../texlive/2014/texmf-dist/tex/latex to C:/texlive/2014/texmf-dist/tex/latex
  2. link from .../texlive/2014/texmf-dist/doc to C:/texlive/2014/texmf-dist/doc

I don't know whether a hard link or a symbolic link, but as Linux has this link feature, I'd check this possibility. Maybe here are some geeks who know exactly how to set a link from a Linux folder to a NTFS folder somewhere else.

Why only those two links? Because the LaTeX packages and the documents make the lions share of the texlive.

OK. Then restart the installation under Linux. I hope that tlmgr will accept the link to your windows installation and then try to install every single package and documentation, but notices they are already there.

Recently I transferred all doc and latex files to another computer and that part (start installation, abort, transfer, restart) worked. But I have no experience with linking into a windows installation.

Of course, you have to install the linux packages for writing into ntfs. And maybe you ruin your texlive installation on windows, if the installer tries something unexpected. But if you make a backup of it, why not giving it a whirl.

  • I gave this a shot, and it seems that the installer doesn't check for the existence of packages before proceeding to download every package, again (to TEXDIR/temp). So it still tries to download every package again, even if I run the windows installer on my existing (working) windows installation! – mathematical.coffee Jul 10 '14 at 11:23
  • No, sorry, misunderstanding: Don't try this from the other side! You have to be under Linux! And the point is not minimizing downloads, but minimizing the space on the harddisk, isn't it! – Keks Dose Jul 10 '14 at 11:29
  • It's about both. When I do it from Linux it starts to redownload every package again, same with Windows. I don't to download some ~3000 packages again (I assume the install step would work whether I make symlinks or simply change TEXDIR during installation as described in my question, but I have not wanted to download all the packages again to see what happens) – mathematical.coffee Jul 10 '14 at 11:36
  • Sorry but advising somebody to do this rather than using the built-in support for a multi-architecture installation is just ill conceived. Sure, if you keep a backup nothing awful will happen. But why not use the support TeX Live offers for this kind of configuration? Moreover, setting up links in this particular way is especially ill-conceived since generated configuration files on the Linux side will not be updated when packages are updated on the Windows side. So, even if it worked as intended, you'd end up with a maintenance nightmare. – cfr Jan 1 '16 at 23:10
  • @cfr What about writing your own answer, telling us how to set up a dual boot texlive? – Keks Dose Jan 2 '16 at 6:45

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.