The TeX Live distribution does not provide biber for MUSL based Linux distros such as Alpine.
This project provides the means to build and test biber under Alpine Linux from the source. Run
docker build -t krumeich/biber-alpine .
to build the image. This takes some time, as all the perl dependencies are downloaded and installed. Then run
docker run -v $PWD:/opt krumeich/biber-alpine
to build the biber binary. Mounting the $PWD as /opt makes the
directory visible in which the build process installs the packed binary.
To test the build the binary should be run in an environment that does not contain the build infrastructure, such as Perl and all the required libraries. This project also provides a test environment. Run
docker build -f Dockerfile.test --tag krumeich/biber-test .
to build the image for the test environment. Then run
docker run --rm -v $PWD:/usr/local/bin krumeich/biber-test
to run simple tests to validate the build. Again, the current directory is mounted into the container to access the binary which as been produced in the previous steps.
-
Passing
-e branch=<branchname>causes the branch<branchname>to be built. If the parameter is omitted,branchwill default todev:docker run -v $PWD:/usr/local/bin -e branch=krumeich/musl krumeich/biber-alpine
-
Passing
-e repo=<reponame>causes the repository<reponame>to be built. If the parameter is omitted,repowill default toplk/biber:docker run -v $PWD:/usr/local/bin -e repo=krumeich/biber krumeich/biber-alpine
Of course you can combine both variants to build an arbitrary branch from an arbitrary biber fork.
-
Alternatively, if you have
makeinstalled, usemake imageto create the image, then usemake biberto build biber. To pass a particular branch name, set the environment variablesBRANCHand/orREPOon the same command line:BRANCH=krumeich/musl REPO=krumeich/biber make biber
-
Consequently, run
make testto build the test environment and run the validation. -
If you are completely lazy, then just run
make allto build all images, the biber binary and run the test in one go.