I’ve been using Vanilla TeX live from upstream, and I did in the past tlmgr update --all and --self without any issue.

However, now, something new shows up (even though it doesn’t seem new when I look on the internet), that is user mode. Basically, I have this error message:

$ sudo tlmgr update -self
(running on Debian, switching to user mode!)
(see /usr/share/doc/texlive-base/README.tlmgr-on-Debian.md)
TLPDB: not a directory, not loading: /root/texmf
tlmgr: user mode not initialized, please read the documentation!

So I read the documentation, run tlmgr init-usertree but it was already initialized:

$ tlmgr init-usertree

tlmgr: user mode database already set up in
tlmgr:   /home/louisvgn/texmf/tlpkg/texlive.tlpdb
tlmgr: not overwriting it.

Now, all I want in the end is to be able to update --all, but I don’t know how I can do that this it always gives me the first error message telling me user mode not initialized.

Down the line, though, I’d like to understand what this is all about, and how one can override it in order to install/update system-wide.

  • you are using tlmgr from the system tex not upstream texlive from tug Nov 23, 2022 at 20:06
  • either use the debian system texlive and update using apt or use a tug texlive and updtate using tlmgr Nov 23, 2022 at 20:08
  • er as you asked a year ago: tex.stackexchange.com/q/616493/1090 Nov 23, 2022 at 20:18
  • is your tug texlive installed under sudo or under your account? In the latter case sudo in your first code block is wrong Nov 23, 2022 at 20:49
  • Yes exactly, as I stated in a year ago, I installed the TUG texlive and was able to use tlmgr without issue. It is no longer the case though.
    – Louis
    Nov 23, 2022 at 20:58

1 Answer 1


You want to update /usr/local/texlive/2022 so you need to use /usr/local/texlive/2022/bin/x86_64-linux/tlmgr

apparently /usr/local/texlive/2022 is writable under your account, so you do not need sudo If you had installed it under sudo you would need to update under sudo but should first set the PATH to start /usr/local/texlive/2022/bin/x86_64-linux you have only set that under your account.


tlmgr update --self --all

should update your copy of texlive.

The above will definitly not give the warning in the question about /usr/share/... (the system texlive) However if you originally installed tug texlive under sudo and do not have write access to update, you could give yourself access or update under sudo using

sudo /usr/local/texlive/2022/bin/x86_64-linux/tlmgr update --self --all

so it uses the right one.

  • well I set the path $ set PATH=/usr/local/texlive/2022/bin/x86_64-linux, but it still doesn’t work when I do tlmgr update --self. I’m not sure I understand what’s wrong.
    – Louis
    Nov 23, 2022 at 22:39
  • @Louis.vgn you need that at the front of your path not the entire path your comment under the question shows you had already set the path. You can not get the Debian message that you show in the question from the tlmgr in /usr/local Nov 23, 2022 at 22:44
  • I don’t understand. What do you mean?
    – Louis
    Nov 23, 2022 at 23:28
  • 1
    @Louis.vgn as I say you have set the path already so tlmgr update --self --all should work (it certainly will not give the error in the question). If you installed under sudo and can not write to /usr/local/texlive/2022 make that writable by you or use sudo /usr/local/texlive/2022/bin/x86_64-linux/tlmgr update --self --all Nov 24, 2022 at 9:03
  • 1
    @Louis.vgn /usr/local/texlive/2022/bin/x86_64-linux/ is the one from tug, for the rest it's really just generic path and sudo issues whch are not really on topic here. ` tlmgr update --self --all` would not give the debian warning in the question if (as you said in comments) which tlmgr gave the path to the tug version. Nov 24, 2022 at 18:26

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .