The best solution here by far is to install vanilla TeX Live as explained in answers on this site and in the official instructions.
There is some confusion, I think. In general, there is a difference between what is needed to build a binary and what is needed to use it. The quotation from biber
's documentation is saying that perl
is not needed to use pre-built binaries. When you try to build the backports package, however, you are trying to build the binary and that is what requires perl
5.16, it seems.
You could obtain the binary from Sourceforge, for example. However, you would need to ensure that you get the right biber
for the version of biblatex
you have. Moreover, you will need to re-backport and recheck etc. each time the backported package is updated.
In contrast, if you install vanilla TeX Live, you can keep everything current using tlmgr
without having to compile anything. This is, to say the least, extremely nice. It also avoids a lot of messing about trying to figure out which package contains what in Debian's ecosystem. (This is not a criticism of Debian's packaging but if you basically want all of TeX Live, say, it is simpler to just install it.)
I think if somebody is happy with the version of TL which their distro provides, sticking with it makes a lot of sense. But once you are unhappy with it, vanilla TL makes a lot more sense IMHO than the alternatives. It is simpler, easier to maintain, more transparent and cleaner. It also allows you to install TeX Live as an unprivileged user, as recommended by upstream. (Note: hardly anybody seems to do this except me but, being me, I think it an advantage.)
In summary, this were the required steps on my system:
Create a local texmf tree. The gist is, create the folder C:\localtexmf
and a subfolder tex
and then run
initexmf --register-root=c:\localtexmf
initexmf --update-fndb
Open MiKTeX Options and go to the "Roots" tab. Check the "Show MiKTeX-maintained root directories" box. Your local tree should be before "UserInstall".
- If your local tree is before "UserInstall", you can skip to the next bullet point.
- If you can use the "Up" button to move your local tree before "UserInstall", then do so.
- Else, your setup probably looks like this, i.e. "UserInstall" and "UserConfig" point to the same path. In this case, you need to separate "UserInstall" and "UserConfig". To this end, set an environment variable
MIKTEX_USERINSTALL
that points to the new "UserInstall" path. I chose C:\Users\CL\AppData\Roaming\MiKTeX\2.9\install
.
- Run
initexmf --update-fndb --verbose
. Now, the local texmf directory should be listed before UserInstall but after UserConfig and UserData.
- Run
kpsewhich --all biblatex.sty
. This will probably point to a file in your UserConfig tree (in my case: C:\Users\CL\AppData\Roaming\MiKTeX\2.9\tex\latex\biblatex
). I suppose that this should not be the case but is an artifact of separating UserConfig and UserInstall after the fact. Delete that biblatex
directory and update FNDB.
Download the development version of BibLaTeX from Sourceforge. Choose the file with the tds.tgz
extension (e.g. biblatex-3.7.tds.tgz
).
- Open the
tds.tgz
file. It contains a tds.tar
file. Copy the contents of the tds.tar
file to your local texmf directory:
- Run
initexmf --update-fndb --verbose
and then kpsewhich --all biblatex.sty
. This should point to biblatex.sty
in your local texmf directory.
- Don't forget to use the matching (development) version of biber.
A remark on step 5 under the second bullet point. As the local texmf tree has precedence over UserInstall (if MiKTeX is set up correctly), it is usually not necessary to remove the old/stable version of a package before copying a new version to the local texmf tree. The reason why the biblatex
directory needs to be deleted in step 5 is because after separating UserInstall and UserConfig, the files (wrongly?) remain in UserConfig. Packages that are installed after the trees have been separated end up in UserInstall and don't need to be removed manually when another version from the local tree is to be used.
Christian Schenk suggests to move the contents of UserConfig to UserInstall when separating the trees. This should make deleting the biblatex
folder obsolete.
Best Answer
Note that manual installation of Biblatex and Biber is not recommended except in exceptional circumstances.
Such circumstances include:
you've been bitten by a bug which is fixed in a newer version, you need the fix urgently and you will remember to undo the manual installation at the appropriate time (and you'll recognise when that is);
you have been foolish enough to update your TeX distribution right before a deadline, have no roll-back plan and the update has broken your bibliography, you plan to fix the real problem after the deadline and will remember to undo the manual installation at that time.
In all other cases, the best course is to update your document or other packages to use the new Biblatex/Biber or to wait for the fixed version to be available through your normal update routine.
Note that there is no guarantee that rolling back Biblatex/Biber will work with an updated TeX distribution, although it is likely in most cases to work in the short term.
Caveat emptor ...
If you are sure you want to do this, then proceed as follows. These instructions assume you are using TeX Live on a Unix-ish system (Mac OS X, BSD, GNU/Linux etc.).
You need to download matching versions of Biber and Biblatex from SourceForge: Biber and Biblatex.
At the command line (e.g. Terminal for OS X users), navigate to the directory you downloaded the files to.
should show you a file named
biblatex-<version>.tds.tgz
and another namedbiber-<arch>.tar.gz
where<version>
is the version you need of Biblatex and<arch>
matches the architecture of your OS.The last command should return a file in you personal TEXMF tree and not in the main TEXMF tree. It should be somewhere in your home directory.
This should produce a
biber
binary, possibly in a sub-directory.To use your downloaded copy of Biber, use
~/bin/biber <filename>
rather thanbiber <filename>
, to make sure you get the correct one. (You could adjust yourPATH
to automate this, but it is not worth it for a very short-term temporary workaround.)