Benutzer:Dirk Hünniger/wb2pdf/install
General Remarks for all Operating Systems
[Bearbeiten]Use the Latest Version
[Bearbeiten]MediaWiki changes quickly, requiring frequent updates to mediawiki2latex. But the version in the operating systems repositories usually is not the latest version as found on the sourceforge website. So we generally recommend that you update to the latest version as described below in the installation instructions for Debian.
Install Enough Memory
[Bearbeiten]Mediawiki2latex makes quite heavy use of memory. We recommend a host system with at least 8 GByte. This should be OK for documents of up to 100 pages of its output format. If LaTeX or PDF output is requested in combination with --bookmode, it should suffice for documents of almost arbitrary size. In all other cases the rule of thumb is 32 GByte of memory for 1000 pages of output. If a "killed" message appears in the terminal which you are running mediawiki2latex on, this usually means the available memory has been used up.
Installation on Ubuntu
[Bearbeiten]sudo apt-get install mediawiki2latex mediawiki2latex
Currently version 7.47 is available from the Ubuntu package repositories.
Configure Image Magicks access rights as described in the section on Debian below.
Installation on Debian
[Bearbeiten]mediawiki2latex 7.25 is included in the Debian Stretch distribution and works out of the box, but the output is limited to a few pages. To work around this problem you should upgrade mediawiki2latex to version 7.44, once you have installed it from the Stretch repository. You will also need to ensure that ImageMagick is installed and configured.
To install version 7.25 from the Stretch repository, enter (as root).
apt-get install mediawiki2latex
Install the gnu unifont package at least version trixie:
https://packages.debian.org/trixie/all/fonts-unifont/download
Then install the build-time and run-time dependencies (as root):
apt-get install ghc libghc-x509-dev libghc-pem-dev chromium chromium-sandbox apt-get install libghc-regex-compat-dev libghc-http-dev cabal-install libghc-hxt-dev apt-get install libghc-split-dev libghc-blaze-html-dev libghc-file-embed-dev apt-get install libghc-hxt-http-dev libghc-regex-pcre-dev apt-get install libghc-temporary-dev libghc-url-dev libghc-utf8-string-dev apt-get install libghc-utility-ht-dev libghc-http-conduit-dev libghc-happstack-server-dev apt-get install libghc-directory-tree-dev libghc-zip-archive-dev libghc-strict-dev apt-get install libghc-network-uri-dev libghc-tagsoup-dev libghc-word8-dev apt-get install ghostscript calibre latex2rtf libreoffice curl texlive-extra-utils apt-get install pdftk libimage-exiftool-perl
To upgrade to version 7.44:
- Download mediawiki2latex version 7.44 from sourceforge: Download Link.
- Extract the archive into your directory of choice.
- From this directory, run (as root):
make install
Finally, to enable image conversions, make sure that ImageMagick is installed and that it has permission to transform PS and PDF files to PNG.
Check whether ImageMagick is installed, and if not then run:
apt-get install imagemagick
Edit permissions (as root) in /etc/ImageMagick-6/policy.xml
<policy domain="coder" rights="read|write" pattern="PS" /> <policy domain="coder" rights="none|write" pattern="PS2" /> <policy domain="coder" rights="none|write" pattern="PS3" /> <policy domain="coder" rights="none|write" pattern="EPS" /> <policy domain="coder" rights="read|write" pattern="PDF" /> <policy domain="coder" rights="read|write" pattern="XPS" />
Note that this may entail some risks on a server machine, as explained in this piece on Solution to ImageMagick "not authorized" PDF Error by Bob Cromwell.
When processing large images it might be needed to update the maximum processable image sizes in the same file like this (/etc/ImageMagick-6/policy.xml):
<policy domain="resource" name="memory" value="8GiB"/> <policy domain="resource" name="map" value="8GiB"/> <policy domain="resource" name="width" value="100KP"/> <policy domain="resource" name="height" value="100KP"/> <policy domain="resource" name="area" value="10GP"/> <policy domain="resource" name="disk" value="20GiB"/>
cron job
[Bearbeiten]If needed create the following cronjob with crontab -e
, to autofree disk space in temporary files.
02 4 * * * find /tmp/* -mtime +7 -exec rm {} \;
Installation on CentOS 7
[Bearbeiten]The instructions below apply to CentOS 7 (and likely CentOS 6). The primary concern with a CentOS 7 installation is to avoid the standard CentOS repository packages. Specifically the standard CentOS standard "epel" (Extra Packages for Enterprise Linux) repository contains ghc, cabal-install, and texlive, however, the versions in epel either provide incompatible versions (ghc and cabal) or are missing many components (texlive). Finally there are font dependancies that must be installed in order for MediaWike2LaTex to generate PDFs.
Prepare and Compile MediaWiki2LaTex
[Bearbeiten]The following versions of GHC, Cabal and Texlive are compatible with MediaWiki2PDF 7.33.
- Install the latest GHC compiler. As-of 2019-01, this is available/documented at: https://copr.fedorainfracloud.org/coprs/petersen/ghc-8.0.2
- Create /etc/yum.repos.d/petersen-ghc-8.0.2-epel-7.repo:
name=Copr repo for ghc-8.0.2 owned by petersen baseurl=https://copr-be.cloud.fedoraproject.org/results/petersen/ghc-8.0.2/epel-7-$basearch/ type=rpm-md skip_if_unavailable=True gpgcheck=1 gpgkey=https://copr-be.cloud.fedoraproject.org/results/petersen/ghc-8.0.2/pubkey.gpg repo_gpgcheck=0 enabled=1 enabled_metadata=1 yum disablerepo=epel install ghc cabal-install cabal update
- Download and install the latest LaTex from: http://mirror.ctan.org/systems/texlive/tlnet/install-tl-unx.tar.gz. This installer is a "live" install (it downloads install content as the install runs).
wget http://mirror.ctan.org/systems/texlive/tlnet/install-tl-unx.tar.gz tar xvzf install-tl-unx.tar.gz cd install-tl-[build-date] ./install-tl
- Note the install-tl texlive is a lengthly install (5+ hours), optionally run the process in the background and disassociate it from the current login session:
- nohup sh -c "echo I | ./install-tl" > texlive-install.log 2>&1 &
- note the command avoid includes "echo I" for Install which is a required keyboard input to install-tl
- nohup will allow the install to run without being logged in.
- nohup sh -c "echo I | ./install-tl" > texlive-install.log 2>&1 &
- Download and install the latest mediawiki2latex source.
- git clone https://git.code.sf.net/p/wb2pdf/git wb2pdf-git
- cd wb2pdf-git
- cabal install
- All going well, this will result in a binary wb2pdf-git/dist/build/mediawiki2latex.
Install Fonts
[Bearbeiten]There are a fonts needed by mediawiki2latex that will not be available through the prior installation steps (e.g. GNU Freefont).
GNU Freefont
[Bearbeiten]- wget http://ftp.gnu.org/gnu/freefont/freefont-ttf-20120503.zip
- unzip freefont-ttf-20120503.zip
- cd freefont-20120503
- mkdir /usr/share/fonts/truetype/freefont
- cp *.ttf /usr/share/fonts/truetype/freefont
- fc-cache -f /usr/share/fonts
- Note: initiating fc-cache is not explicitly needed, however, this is generally good practice in order to fully register fonts in CentOS
Test Installion
[Bearbeiten]Installation on Windows
[Bearbeiten]1) Activate Linux Subsystem
- Go to Control Panel -> Programs -> Turn Windows Features On / Off
- The Windows Features Dialog will open
- Scroll to the bottom
- Enable Windows Subsystem for Linux
- Press OK
2) Use Docker
- Follow instructions here
Native Windows Command Line Version
[Bearbeiten]We also provide an experimental command line version that runs on Windows without needing to install anything. The zip archive containing it, as well as all tools especially miktex, is called MediaWikiToLaTeX.zip . It may be downloaded from:
https://sourceforge.net/projects/wb2pdf/files/mediawiki2latex/7.32/
We do not recommend to use this native command line version but rather propose to follow the above installation instruction. We furthermore were not able to produce any results in recently patched version of the os on 25th of May 2019.
Installation on other OS
[Bearbeiten]Use Docker
- Follow instructions here
Using Docker
[Bearbeiten]Some sucess was reached using docker
Dockerfile:
FROM ubuntu:noble ENV DEBIAN_FRONTEND noninteractive RUN apt-get update RUN apt-get install -y mediawiki2latex ENTRYPOINT ["mediawiki2latex"]
Which is used like this:
sudo docker image build . -t m2lubuntu sudo docker container run --mount src=/home/dirk/2docker,target=/transfer,type=bind -i m2lubuntu -u https://de.wikibooks.org/wiki/Physikalische_Grundlagen_der_Nuklearmedizin/_Atom-und_Kernstruktur -o /transfer/dirk.pdf
Where you have to replace /home/dirk/2docker with you local directory where you want to output file dirk.pdf to be written to.
Installation Diagnostics and Validation
[Bearbeiten]Diagnostic Steps
[Bearbeiten]A recommended step to test a mediawiki2latex install is to run the following test:
mkdir rmtest mediawiki2latex -u https://en.wikipedia.org/wiki/Book:River_martin -o rivermartin.pdf -k -c rmtest
If mediawiki2latex appears to finish and generate rivermartin.pdf, then examine rivermartin.pdf, it should be some 84 pages. If a pdf is not generated then:
- cd rmtest/document/main
- xelatex main.tex
alternately run
- xelatex -interaction=nonstopmode main.tex
Review the detailed output of xelatex
Validation
[Bearbeiten]Given a version of rivermartin.pdf, compare this with the open server generated version of the River_martin test case via http://mediawiki2latex-large.wmflabs.org/