{"id":714,"date":"2020-03-01T14:03:23","date_gmt":"2020-03-01T13:03:23","guid":{"rendered":"https:\/\/www.anginf.de\/?p=714"},"modified":"2023-02-07T16:59:52","modified_gmt":"2023-02-07T15:59:52","slug":"overleaf-installieren","status":"publish","type":"post","link":"https:\/\/www.anginf.de\/?p=714","title":{"rendered":"Overleaf installieren"},"content":{"rendered":"\n<p>Ich finde overleaf extrem cool, wollte aber f\u00fcr vergleichsweise sensible Daten nicht die \u00f6ffentlich angebotene Instanz nutzen, sondern diese lieber lokal einsetzen. Da overleaf seinen Quellcode frei verf\u00fcgbar gestellt hat, ist das ziemlich einfach umzusetzen.<\/p>\n\n\n\n<p>Ich habe mir hierf\u00fcr eine einfache &#8222;install.sh&#8220; erstellt, welche die notwendigen Schritte ausf\u00fchrt. Die Datei sollte man als nicht-priviligierter Nutzer ausf\u00fchren. Falls Docker (in einer Nicht-Community-Edition) bereits installiert ist, aber nicht l\u00e4uft w\u00fcrde dieses Skript das Docker automatisch durch die Community Edition ersetzen, also bitte ggf. den Teil aus dem Skript herausnehmen.<\/p>\n\n\n\n<p><\/p>\n\n\n\n<pre class=\"wp-block-code has-dark-gray-color has-text-color\"><code lang=\"bash\" class=\"language-bash\">#!\/bin\/bash\nEMAILADRESS=\"\" # Set this FIRST!\nif [ -z ${EMAILADRESS} ]\nthen\n  echo \"Please set a value for EMAILADRESS first. That user will be made admin.\"\n  exit 1\nfi\n. \/etc\/lsb-release\nif (systemctl -q is-active docker)\nthen\n  echo \"Docker is already running, will NOT install.\"\nelse\n  echo \"### Initial apt update\"\n  sudo apt update\n  echo \"### Installing prerequisites\"\n  sudo apt -y install apt-transport-https ca-certificates curl software-properties-common\n  echo \"### Adding docker GPG key\"\n  curl -fsSL https:\/\/download.docker.com\/linux\/ubuntu\/gpg | sudo apt-key add -\n  echo \"### Adding Repository\"\n  sudo add-apt-repository \"deb [arch=amd64] https:\/\/download.docker.com\/linux\/ubuntu ${DISTRIB_CODENAME} stable\"\n  echo \"### apt update for docker\"\n  sudo apt update\n  echo \"### Choosing docker-ce\"\n  sudo apt-cache policy docker-ce\n  echo \"### Installing docker-ce\"\n  sudo apt -y install docker-ce\n  echo \"### Checking im docker is running\"\n  if (systemctl -q is-active docker)\n  then\n    echo \"### Docker is running\"\n  else\n    echo \"Docker is NOT running.\"\n    exit 1\n  fi\n  echo \"### Adding docker group\"\n  sudo groupadd docker\n  newgrp docker\n  sudo usermod -aG docker ${USER} ## Privilege user\nfi\necho \"### Installing docker-compose\"\nsudo apt -y install docker-compose\necho \"### Pulling sharelatex-docker-image\"\ndocker pull sharelatex\/sharelatex\necho \"### Pulling docker-compose.yml\"\nwget -nc https:\/\/raw.githubusercontent.com\/overleaf\/overleaf\/master\/docker-compose.yml\necho \"### Modifying docker-compose.yml\"\nsed -i 's#- 80:80#- 2080:80#' docker-compose.yml # Only once, for the first \"ports:\"-directive\necho \"### Running docker-compose\"\ndocker-compose up -d sharelatex\ndocker exec sharelatex \/bin\/bash -c \"cd \/var\/www\/sharelatex; grunt user:create-admin --email=${EMAILADRESS}\"\ndocker exec sharelatex wget http:\/\/mirror.ctan.org\/systems\/texlive\/tlnet\/install-tl-unx.tar.gz\ndocker exec sharelatex tar xvfz install-tl-unx.tar.gz\necho \"#######################################################################\"\necho \"Execute 'cd install-tl-[0-9]*; .\/install-tl'\"\necho \"Please choose 'y' to import settings, then choose 'I' for installation.\"\necho \"Leave afterwards with 'exit'\"\necho \"#######################################################################\"\ndocker exec -i -t sharelatex \/bin\/bash\ndocker exec sharelatex wget http:\/\/mirror.ctan.org\/systems\/texlive\/tlnet\/update-tlmgr-latest.sh -O \/usr\/local\/texlive\/2020\/update-tlmgr-latest.sh\ndocker exec sharelatex chmod u+x \/usr\/local\/texlive\/2020\/update-tlmgr-latest.sh\ndocker exec sharelatex \/usr\/local\/texlive\/2020\/update-tlmgr-latest.sh -- --upgrade\ndocker exec sharelatex tlmgr update --self\ndocker exec sharelatex tlmgr install scheme-full\ndocker exec sharelatex luaotfload-tool -fu<\/code><\/pre>\n\n\n\n<p>Anschlie\u00dfend sollte auf dem aktuellen Host auf Port 2080 die Overleaf-Instanz erreichbar sein.<\/p>\n\n\n\n<p>Die Installation von &#8222;scheme-full&#8220; dauert eine ganze Weile, weil alles einzeln angesto\u00dfen wird. Bitte nicht ungeduldig werden, 1-2 Stunden je nach Rechnergeschwindigkeit sind hier v\u00f6llig normal.<\/p>\n\n\n\n<p>Falls merkw\u00fcrdige Fehler auftauchen (z.B. dass die Silbentrennung von ngerman bzw. german nicht geladen werden kann), dann kann das an einer veralteten TeXLive-Installation im Docker-Container liegen. Bei mir war im vorgefertigen Docker noch TeXLive 2019 installiert, welches man manuell auf 2020 updaten kann (seit dem 07.04. muss dies ausgef\u00fchrt werden, daher habe ich es in das Skript oben integriert, leider muss man durch das interaktiv &#8222;install-tl&#8220;-Skript die Fragen selbst beantworten):<\/p>\n\n\n\n<p><code>docker exec -i -t sharelatex \/bin\/bash<\/code><br><code>wget http:\/\/mirror.ctan.org\/systems\/texlive\/tlnet\/install-tl-unx.tar.gz<\/code><br><code>tar xvfz install-tl-unx.tar.gz<\/code><br><code>cd install-tl-*<\/code><br><code>.\/install-tl<\/code><\/p>\n\n\n\n<p>Die Fragen der Installation sollte man einfach so \u00fcbernehmen, das &#8222;neue&#8220; TeXLive wird dann in die Verzeichnisse des 2019er-TeXLive installiert. Im Idealfall kann man also direkt nach dem Starten von <code>install-tl<\/code>mit einem <code>I<\/code> die Installation ausf\u00fchren. Das Upgrade dauert auch wieder <strong>lange<\/strong>, da wieder ca. 4000 Pakete installiert werden.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"bash\" class=\"language-bash\"><\/code><\/pre>\n","protected":false},"excerpt":{"rendered":"<p>Ich finde overleaf extrem cool, wollte aber f\u00fcr vergleichsweise sensible Daten nicht die \u00f6ffentlich angebotene Instanz nutzen, sondern diese lieber lokal einsetzen. Da overleaf seinen Quellcode frei verf\u00fcgbar gestellt hat, ist das ziemlich einfach umzusetzen. Ich habe mir hierf\u00fcr eine einfache &#8222;install.sh&#8220; erstellt, welche die notwendigen Schritte ausf\u00fchrt. Die Datei sollte man als nicht-priviligierter Nutzer &hellip; <a href=\"https:\/\/www.anginf.de\/?p=714\" class=\"more-link\"><span class=\"screen-reader-text\">Overleaf installieren<\/span> weiterlesen <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[],"class_list":["post-714","post","type-post","status-publish","format-standard","hentry","category-allgemein"],"_links":{"self":[{"href":"https:\/\/www.anginf.de\/index.php?rest_route=\/wp\/v2\/posts\/714","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.anginf.de\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.anginf.de\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.anginf.de\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.anginf.de\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=714"}],"version-history":[{"count":10,"href":"https:\/\/www.anginf.de\/index.php?rest_route=\/wp\/v2\/posts\/714\/revisions"}],"predecessor-version":[{"id":780,"href":"https:\/\/www.anginf.de\/index.php?rest_route=\/wp\/v2\/posts\/714\/revisions\/780"}],"wp:attachment":[{"href":"https:\/\/www.anginf.de\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=714"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.anginf.de\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=714"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.anginf.de\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=714"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}