Opened 9 months ago
Closed 9 months ago
#69243 closed defect (fixed)
texlive-bin: TeXDist prefpane support prevents non-root installation
Reported by: | pereimer | Owned by: | drkp (Dan Ports) |
---|---|---|---|
Priority: | Normal | Milestone: | |
Component: | ports | Version: | 2.9.0 |
Keywords: | Cc: | ||
Port: | texlive-bin |
Description
I am trying to install texlive without root priv. I installed macports with
export MP_PREFIX=/Users/me/local ./configure --prefix=$MP_PREFIX --with-applications-dir=$MP_PREFIX/Applications --with-no-root-privileges make make install port -v selfupdate
That worked fine, and everything I've installed until texlive followed $MP_PREFIX. However,
port install texlive
gives, after computing the dependencies and agreeing to them, the following message
---> Activating texlive-bin @2023.66589_4+x11 Error: Failed to activate texlive-bin: can't create directory "/Library/TeX/Distributions/.FactoryDefaults/MacPorts-Users_reimer_local-TeXLive": permission denied while executing "::file mkdir $dstfile" (procedure "_activate_file" line 18) invoked from within "_activate_file "${extracted_dir}${file}" $file" ("foreach" body line 2) invoked from within "foreach file $files { if {[_activate_file "${extracted_dir}${file}" $file] == 1} { lappend rollback_fileli..." ("try" body line 3) while executing "throw [dict get $eOptions -errorcode] [dict get $eOptions -errorinfo]" ("try ... on" handler line 5) invoked from within "registry::write { # Activate it, and catch errors so we can roll-back try { $port activate $imagefiles ..." Error: See /Users/reimer/local/var/macports/logs/_Users_reimer_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_tex_texlive-bin/texlive-bin/main.log for details. Error: Follow https://guide.macports.org/#project.tickets if you believe there is a bug. Error: Processing of port texlive failed
Clearly, it is trying to put data in /Library rather than the directory $MP_PREFIX. I have tried setting
export TEXLIVE_INSTALL_PREFIX=/Users/me/local
as suggested in several locations for a generic installation of texlive, but I couldn't find any suggestions specifically for MacPorts.
Is this a bug or feature request, or simply a switch/environmental variable which I have not found?
Thanks,
Paul
Change History (8)
comment:1 Changed 9 months ago by ryandesign (Ryan Carsten Schmidt)
Keywords: | texlive MP_PREFIX root removed |
---|---|
Owner: | set to drkp |
Port: | texlive-bin added |
Status: | new → assigned |
Summary: | texlive ignoring installation prefix → texlive-bin: ignoring installation prefix |
comment:2 Changed 9 months ago by pereimer
Since it is probably the only way that I will be able to install this package, could you tell me how I can get port to use external environmental variables (e.g. TEXLIVE_INSTALL_PREFIX)? While I could install it directly, I am installing things which depend on texlive and would like to do those via macports, so I believe that I need texlive installed via macports.
I did notice that from port file all|sort -u|xargs grep /Library/
that kde4-kile uses a variable TEXPREFIX
to reference the installation location; although /Library/TeX
seems to be hardwired into most of the other ports.
I doubt that I am the only person to not have root privileges and wanting to install TeX, so would be of general use.
Thanks,
Paul
comment:3 follow-up: 5 Changed 9 months ago by drkp (Dan Ports)
Yes, this is to support the TeX Distribution prefpane that's used by MacTeX and is used to select between multiple TeX Live installations. The actual TeX files are in $prefix.
There's no reason to try to change where the TeX Distribution symlinks are installed, but we could control whether they are installed with a variant.
comment:4 Changed 9 months ago by drkp (Dan Ports)
Incidentally, the other references to /Library/TeX are all ports that want to be able to (optionally) support using MacTeX instead of the texlive ports if they're installed.
comment:5 Changed 9 months ago by ryandesign (Ryan Carsten Schmidt)
Replying to drkp:
There's no reason to try to change where the TeX Distribution symlinks are installed, but we could control whether they are installed with a variant.
If it's a matter of not having permission to write to /Library, then I wouldn't use a variant; I would just skip installing those files if the user is using a non-root MacPorts installation.
comment:6 Changed 9 months ago by drkp (Dan Ports)
Ah, good point, I can't think of any other reason you'd want to control it.
comment:7 Changed 9 months ago by drkp (Dan Ports)
Summary: | texlive-bin: ignoring installation prefix → texlive-bin: TeXDist prefpane support prevents non-root installation |
---|
comment:8 Changed 9 months ago by drkp (Dan Ports)
Resolution: | → fixed |
---|---|
Status: | assigned → closed |
I assume this is intentional, but I don't know the TeX software well enough to explain why. Maybe the TeX software requires that it is installed there.
Using the command
port file all|sort -u|xargs grep /Library/TeX
I found several ports referencing this path, chiefly texlive-bin.MacPorts will not see that you have set the environment variable
TEXLIVE_INSTALL_PREFIX
because MacPorts intentionally ignores user environment variables in order to provide a consistent experience. MacPorts can be told not to ignore certain environment variables but I doubt that's the correct thing to do in this case; it doesn't look like texlive-bin would make use of that environment variable.