-
-
Notifications
You must be signed in to change notification settings - Fork 117
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
issues with system-wide tinytex setup & on-the-fly style file installation #77
Comments
Following up on this a bit: it's not clear to me why Meanwhile, just installing to root dir and then |
Okay. Glad you figured it out: rocker-org/rocker-versioned@a70608c (indeed |
Sadly after going back to following the FAQ for the system install (silly me, that's what I had before switching to Why is LaTeX now attempting to automatically install style files automatically? I mean, that's 💯 amazing and all, but it also seems to be the source of this problem. Note that contrary to the error message LaTeX is showing above, running So the above problem seems to be isolated to LaTeX's attempt to automatically install the style packages, which I think historically at least it did not do. Is this something tinytex's installation or RStudio has configured? Can it be turned off? |
The feature of auto-installing missing LaTeX packages existed in the tinytex package from day one (December last year), and rmarkdown 1.9 started to use tinytex (March this year). It can be turned off (I rarely force features even if they are nice), but I'd like to figure out the root cause of the mysterious issue first. |
…py $tmppath to $path failed: $!")' because it seems to be false alarm
Hi Yihui - if the copy of $tmppath to $path fails (fix #77, line 630 of the upstream TLPDB.pm), why is not correct to die? seems to me you would be left with an incorrect texlive.tlpdb if that copy fails. unless you made other changes to the code. Just trying to understand ... --karl (from TeX Live) |
@kberry Hi Karl, we actually thought about reporting this issue to TeX Live developers but didn't really do it because it would involve Docker, and we were not sure if you would like to try to reproduce the issue. I guess @cboettig might still be able help you set up a test environment on the cloud like he did for me last year so you don't have to run Docker locally to test it. Anyway, below is a short version of my investigation last year. Basically I found that it was not possible to install or remove LaTeX packages, e.g. $ tlmgr remove bbm-macros
[1/0, ??:??/??:??] remove: bbm-macros
copy /opt/TinyTeX/tlpkg/texlive.tlpdb.tmp to
/opt/TinyTeX/tlpkg/texlive.tlpdb failed: Operation not permitted at
/opt/TinyTeX/tlpkg/TeXLive/TLPDB.pm line 628. Eventually I found that TeXLive::TLUtils::copy ("-f", $tmppath, $path) or die ("copy $tmppath to $path failed: $!"); It actually succeeded in copying |
@kberry thanks for getting in touch with us! As @yihui says, you should be able to replicate this with the Docker image as linked above ( My possibly-mistaken recollection is that this had something to do with user permissions. We are copying the file to a directory which is owned by To me, this seems like a bug in the exit status of |
you are essentially right; i'll spare you the details :). The upshot is that I just removed the "or die" in upstream TLPDB.pm. Thanks. And don't hesitate to report other upstream bugs. And, congratulations on tinytex; nice initiative! Would you like to write an article for TUGboat about it? Please email me (karl at freefriends dot org) if you're interested. |
@kberry but shouldn't we do better? Now that any return value is ignored, we might loose stuff. Maybe we need to improve the copy routine? |
i thought about that, but when I looked at the copy() fn in TLUtils.pm, it already dies in case of any real error, seemed to me. And that is good, because copy() is called in a half dozen other places which never had an "or die". Um, well, I just added some more die-on-failure cases in copy(). Take a look. By the way, I surmise the cause of the original error was that utime() will fail when only group write is available, and the error from that fell through as the return value ... |
Indeed, it was the |
…die ("copy $tmppath to $path failed: $!")' because it seems to be false alarm" This reverts commit c0be772. The bug has been fixed upstream: http://tug.org/svn/texlive/trunk/Master/tlpkg/TeXLive/TLPDB.pm?sortby=date&r1=50091&r2=50090&pathrev=50091
…die ("copy $tmppath to $path failed: $!")' because it seems to be false alarm" This reverts commit c0be772. The bug has been fixed upstream: http://tug.org/svn/texlive/trunk/Master/tlpkg/TeXLive/TLPDB.pm?sortby=date&r1=50091&r2=50090&pathrev=50091
…die ("copy $tmppath to $path failed: $!")' because it seems to be false alarm" This reverts commit c0be772. The bug has been fixed upstream: http://tug.org/svn/texlive/trunk/Master/tlpkg/TeXLive/TLPDB.pm?sortby=date&r1=50091&r2=50090&pathrev=50091
…die ("copy $tmppath to $path failed: $!")' because it seems to be false alarm" This reverts commit c0be772. The bug has been fixed upstream: http://tug.org/svn/texlive/trunk/Master/tlpkg/TeXLive/TLPDB.pm?sortby=date&r1=50091&r2=50090&pathrev=50091
…rg#169) * Use the newer version available for the installer in tlnet/tlpkg/TeXLive, to include the fix described in rstudio/tinytex#77 (comment) * As discussed in https://www.preining.info/blog/2019/09/tex-services-at-texlive-info/#comments * Optional patch only applied for TeX Live 2018, currently relevant for verse:devel but also backported to the verse:latest to be ready for next R release with the update to debian:buster
Hi @yihui ,
Sorry to bother you with this but I'm not sure where things are going wrong.
In the system-wide
tinytex
installation we have on the Rocker images,tinytex::tlmgr_install()
seems to insist on creating a symlink to/root/bin
, which I believe it should not be doing.I can get
tlmgr_install()
to work by giving the user permission to write to/root/bin
(which clearly isn't the right solution), i.e.mkdir /root/bin && chown -R root:staff /root/bin && chmod g+rwx /root/bin
. But even whentlmgr_install()
is happy:Something is going wrong with the paths, because I still cannot knit an example doc like
same error:
I suspect these are all path issues related to the fact that tinytex is somehow assuming it should still be installed at the user level and not the system level, but we really would like it to work at the system-level so it can be shared across a multi-user environment if necessary. You should be able to reproduce this behavior with a vanilla
rocker/verse
image:rocker-org/rocker-versioned#104
The text was updated successfully, but these errors were encountered: