Take the 2-minute tour ×
TeX - LaTeX Stack Exchange is a question and answer site for users of TeX, LaTeX, ConTeXt, and related typesetting systems. It's 100% free, no registration required.

I recently backported what I think is TeX Live 2013 from Debian testing/unstable to Debian wheezy. The version number is 2013.20140314-1. This is no longer the most current version in Debian; there is now a 2013.20140408-1. This was not without difficulty, but that is another story. At least, I thought I had backported it, but it turns out I had overlooked something.

When I installed the texlive-bibtex-extra package, (which contains the biblatex LaTeX package), I discovered that biber 1.8 was also required. This is in unstable, so I tried to backport it. This is where things went wrong. For reasons unclear to me, biber requires Perl 5.16. According to perlhist, 5.16 was released in May 2012, so relatively recently.

Unfortunately, Debian wheezy uses Perl 5.14. In general, updating a basic system component like Perl is not a good idea, so I have not tried to do this, though it is possible it is harmless; I don't know. In any case, I find that I am now stuck. It is possible that I will have to fall back to the TeX Live 2012 packaged for wheezy, which would be annoying.

Can anyone suggest a solution or workaround? I know one can do a local install of TeX Live, but would that not be subject to the same problem? Unless one was to include a local copy of Perl to use specifically for this purpose, that is. Another vague possibility seems to be to bundle perl with the program somehow, perhaps by some form of static linking?

The Biber README says

You do not need to install Perl use biber--binaries are provided for many operating systems via the main TeX distributions (TeXLive, MacTeX, MiKTeX) and also via download from SourceForge.

You only need a Perl installation to use biber in one of the following cases:

  • A binary version is not available for your OS/platform * You wish to keep up with all of the bleeding-edge git commits before they are packaged into a binary.

When I built and installed the Debian binary Biber package, it still complained about 5.16 being available, so I am not sure what is meant by binaries here.

share|improve this question
1  
Even if it will not solve the perl issue, I think it would be much better to install TL from upstream than to use an unofficial backport of TL 2013 in Wheezy. Basically you are trying to mix newer and older things. Sometimes you are lucky and this works; sometimes not and it won't. (Note that perl from May 2012 is 'relatively recent' whereas TL 2012 is 'annoying' because outdated. That's not intended to be a criticism - I've done the same thing - but it is guaranteed to make life interesting ;).) –  cfr Apr 11 at 22:35
    
However, I think upstream TL will likely work without your needing to update perl because you will not be compiling it yourself. Note that I'm not certain of this but I haven't heard Debian users being unable to use upstream TL. –  cfr Apr 11 at 22:37
    
@cfr Well, perl is a base component, so you don't want it to change very much. But TeX Live is end user, so you generally want to stay up to date if possible. Having said that, how does the local Tex Live install solve the Perl problem, and can I do the same? Also, I've used my own backports before - I've never had any problem. –  Faheem Mitha Apr 11 at 22:37
    
You are not compiling locally if you use vanilla TL. The installation instructions note specifically that the default GNU/Linux installer is designed to work with even an extremely 'barebones' perl. I am guessing that to backport, you have to compile everything which of course requires you have all of the necessary bits and bobs installed. –  cfr Apr 11 at 22:40
    
'You do not need to install Perl use biber--binaries are provided for many operating systems via the main TeX distributions (TeXLive, MacTeX, MiKTeX) and also via download from SourceForge.' Yes. Your problem is that you are not using pre-built binaries. That is how it works. You want something which is newer than the binaries provided so you are expected to compile it. If you used TeX Live, you would get their binaries i.e. you would not have to compile. And they obviously provide newer binaries than Debian. You could try Sourceforge's binaries but then you must install outside TL & Deb. –  cfr Apr 11 at 22:45

2 Answers 2

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.)

share|improve this answer

So, I've used the following workaround. I downloaded biber-linux_x86_64.tar.gz from http://sourceforge.net/projects/biblatex-biber/files/biblatex-biber/1.8/binaries/Linux/biber-linux_x86_64.tar.gz/download.

This unpacks into a single executable called biber. The Biber documentation informs me that they use PAR::Packer to build this executable. Apparently this packs the Perl interpreter in there along with other needed files.

I've placed this executable in /usr/local/bin. Since the Debian TeX maintainers, in their infinite wisdom, chose not to have texlive-bibtex-extra depend on biber (it is not even a Recommends or Suggests) I don't have to do anything else. I tested this, and it does work.

I don't really like this solution, but I can live with it. If I wanted to be a binary Debian package purist, I could build a Debian package for this single executable, but it doesn't seem worth the bother. Or, to go a step further, I could build a "proper" Debian package which compiles this executable using PAR::Packer from the Biber sources, but that seems even less worth it, as it would not only require writing the packaging from scratch, but would also not build on Wheezy without some extra packages.

Thanks to @cfr for his helpful suggestions.

share|improve this answer

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

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