Anleitung für andere Distributionen

Installation von SEEK für andere Linux-Distributionen

Unsere Installationsanleitung basiert auf der Ubuntu 20.04 (LTS) Distribution und Version. Abgesehen von den Distributionspaketen sollte der Installationsprozess für andere Distributionen jedoch sehr ähnlich sein.

Für einige andere gängige Distributionen beschreiben wir hier die erforderlichen Distributionspakete und alle anderen Unterschiede zu unserer allgemeinen Installationsanleitung, die uns bekannt sind.

Linux Mint 18


Sobald SEEK installiert ist und läuft, sollte es keine Probleme mehr geben. Der einzige Unterschied, den wir festgestellt haben, ist, dass MySql bei der Installation der Pakete nicht nach einem Root-Passwort fragt. Um sich zunächst mit mysql zu verbinden, um die Berechtigungen einzurichten, müssen Sie möglicherweise Folgendes tun:

sudo mysql -u root

Fedora 20 / RHEL / CentOS


Diese Installation wurde mit Fedora 20 durchgeführt, gilt aber höchstwahrscheinlich auch für Red Hat Enterprise Linux, CentOS und andere Red Hat-basierte Linux-Distributionen oder ist ein guter Ausgangspunkt dafür.

Vielen Dank an Jay Moore für sein Feedback zu seinen eigenen Erfahrungen bei der Installation von SEEK unter RHEL.

Pakete

Die Paketnamen sind für Red Hat recht unterschiedlich und werden mit Yum installiert. Die Pakete, die Sie installieren müssen, sind

sudo yum install mysql-server

Damit wird zwar MariaDB installiert, aber das ist kompatibel und kein Problem. Der Rest der Pakete (einschließlich der Pakete für die Ausführung von SEEK mit Apache) wird wie folgt installiert

sudo yum groupinstall "Development Tools" "Development Libraries"
sudo yum install wget curl mercurial ruby openssl-devel  openssh-server git readline-devel
sudo yum install libxml2-devel libxml++-devel java-1.7.0-openjdk-devel sqlite-devel
sudo yum install poppler-utils libreoffice mysql-devel mysql-libs ImageMagick-c++-devel libxslt-devel
sudo yum install libtool gawk libyaml-devel autoconf gdbm-devel ncurses-devel automake bison libffi-devel
sudo yum install httpd-itk httpd-devel

Installieren von RVM

Installieren Sie wie gewohnt nach der Installationsanleitung, aber achten Sie besonders auf Meldungen über die Aktualisierung Ihres .profile? oder .bash_profile.

Installation von Gems

Wie bei Linux Mint und Ubuntu 14.04 sollten Sie den folgenden Befehl ausführen, bevor Sie bundle install starten, um sicherzustellen, dass Nokogiri mit der installierten Version von LibXML kompiliert wird.

bundle config build.nokogiri --use-system-libraries

Einrichten der Datenbank

Fedora installiert MariaDB anstelle von Mysql. Möglicherweise müssen Sie die Datenbank mit starten:

sudo service mariadb start

Um sie beim Booten zu starten (bei mir war dies nicht standardmäßig aktiviert), sollten Sie Folgendes ausführen:

sudo chkconfig mariadb on

Um sich mit der Datenbank zu verbinden und den Benutzer für SEEK einzurichten, führen Sie aus:

sudo mariadb

Ansonsten bleibt alles beim Alten.

Einrichten für die Produktion mit Passenger Phusion

Um Apache zu starten und zu stoppen, müssen Sie

sudo apachectl start
sudo apachectl stop

Wie auch bei MariaDB ist es nicht so konfiguriert, dass es beim Booten startet, um dies zu beheben, führen Sie folgende Kommandos aus:

sudo apachectl stop
sudo usermod -d /home/apache apache
sudo usermod -s /bin/bash apache
sudo mkdir /home/apache
sudo chown apache /home/apache
sudo apachectl start

und verwenden Sie statt www-data den folgenden Befehl, um zu diesem Benutzer zu wechseln:

sudo su - apache

und fahren Sie dann mit der normalen Installation fort, zusammen mit den oben beschriebenen Unterschieden bei der Installation der Edelsteine und der Einrichtung der Datenbank, bis Sie zur Installation und Einrichtung von Passenger Phusion kommen.

Bevor ich das Passenger-Modul erstelle, muss ich zunächst die folgende Variable setzen, um sicherzustellen, dass es mit einer 64bit-Architektur erstellt wurde

export ARCHFLAGS="-arch x86_64"

und führen Sie dann Folgendes aus

bundle exec passenger-install-apache2-module

Ich erhielt einige Warnungen, dass FORTIFY_SOURCE eine Kompilierung mit Optimierung erfordert, die ich ignorierte und die keine Probleme zu verursachen schienen.

Am Ende des Kompilierens und Einrichtens von Passenger Phusion werden einige Details über die Konfiguration angezeigt, die auf Apache angewendet werden soll. Diese sollte auf eine Konfigurationsdatei in /etc/httpd/conf.d/ angewendet werden. Ich habe z.B. eine Datei /etc/httpd/conf.d/seek.conf verwendet. Sie sollten auch die anderen conf-Dateien entfernen, die dort standardmäßig abgelegt sind. Der Inhalt dieser Datei sah am Ende wie folgt aus, wobei sich Ihre Version leicht unterscheiden kann.

LoadModule passenger_module "/home/apache/.rvm/gems/ruby-2.1.2@seek/gems/passenger-4.0.45/buildout/apache2/mod_passenger.so"
<IfModule mod_passenger.c>
   PassengerRoot /home/apache/.rvm/gems/ruby-2.1.2@seek/gems/passenger-4.0.45
   PassengerDefaultRuby /home/apache/.rvm/gems/ruby-2.1.2@seek/wrappers/ruby
</IfModule>

<VirtualHost *:80>
    # !!! Be sure to point DocumentRoot to 'public'!
    DocumentRoot /srv/rails/seek/public
    <Directory /srv/rails/seek/public>
       # This relaxes Apache security settings.
       AllowOverride all
       # MultiViews must be turned off.
       Options -MultiViews
       # Uncomment this if you're on Apache >= 2.4:
       Require all granted
    </Directory>
</VirtualHost>

Danach sollte der Apache neu gestartet werden mit

sudo apachectl restart

Nun stieß ich beim Laden des Moduls auf einen Berechtigungsfehler, der mit SELinux zusammenhing. Um dies zu umgehen, deaktivierte ich SELinux mit

sudo setenforce 0

Unter http://sergiy.kyrylkov.name/2012/02/26/phusion-passenger-with-apache-on-rhel-6-centos-6-sl-6-with-selinux wird beschrieben, wie man SELinux wieder aktivieren kann, aber wir haben es nicht geschafft, dies zu erreichen.

Wenn Sie eine Lösung haben, wie Sie SELinux wieder aktivieren können, kontaktieren Sie uns bitte. Einzelheiten zur Kontaktaufnahme mit uns finden Sie unter http://seek4science.org/contact.

Ubuntu 20.04 (LTS)


Die allgemeinen Pakete:

sudo apt-get install wget curl mercurial ruby rdoc ri libopenssl-ruby ruby-dev mysql-server libssl-dev build-essential openssh-server git-core
sudo apt-get install libmysqlclient16-dev libmagick++-dev libxslt-dev libxml++2.6-dev openjdk-6-jdk libsqlite3-dev sqlite3
sudo apt-get install poppler-utils openoffice.org openoffice.org-java-common

Um zu vermeiden, dass Sie während der Installation von Ruby 1.9.3 mit RVM dazu aufgefordert werden:

sudo apt-get install libreadline6-dev libyaml-dev autoconf libgdbm-dev libncurses5-dev automake bison libffi-dev

So installieren Sie das Passenger Phusion-Modul, um SEEK mit Apache auszuführen:

sudo apt-get install apache2-mpm-prefork apache2-prefork-dev libapr1-dev libaprutil1-dev libcurl4-openssl-dev

Der Befehl zum Starten von soffice ist ebenfalls etwas anders, da er nur einfache statt doppelte Bindestriche für die Argumente verwendet:

soffice -headless -accept="socket,host=127.0.0.1,port=8100;urp;" -nofirststartwizard > /dev/null 2>&1 &

Wenn Sie feststellen, dass die Konvertierung von Dokumenten in das PDF-Format (für die Anzeige von Inhalten im Browser) langsam ist, können Sie ein aktuelleres LibreOffice 3.5 aus einem separaten Repository installieren - dies kann jedoch zukünftige Betriebssystem-Upgrades beeinträchtigen:

sudo apt-get purge openoffice* libreoffice*
sudo apt-get install python-software-properties
sudo add-apt-repository ppa:libreoffice/libreoffice-3-5
sudo apt-get update
sudo apt-get install libreoffice

Debian


Standardmäßig wird der Benutzer, den Sie während der Installation für Debian anlegen, nicht zur Liste der sudoers hinzugefügt. Sie können Ihren Benutzer zur sudo-Gruppe hinzufügen, z.B.

adduser <USERNAME> sudo

Weitere Details finden Sie unter https://wiki.debian.org/sudo.

Alternativ können Sie bei der Installation Befehle, die mit sudo beginnen, als root-Benutzer ausführen.

Die erforderlichen Paketnamen sind die gleichen wie bei Ubuntu 12.04 - folgen Sie also einfach der Installationsanleitung.

Wenn Sie Probleme mit der Verwendung von rvm haben, müssen Sie Ihr Terminal möglicherweise so konfigurieren, dass Befehle als Login-Shell ausgeführt werden. Es gibt ein Kontrollkästchen, das Sie unter dem Menü Bearbeiten, Profileinstellungen und dann unter der Registerkarte Titel und Befehl finden können.

Installation von SEEK für Mac OS X

Obwohl Sie Seek unter Mac OS ausführen können, könnten Sie auf zufällige Probleme stoßen und müssen verschiedene Anpassungen vornehmen, von denen einige unten aufgeführt sind. Einige Versionen verschiedener Ruby Gems sind nicht voll funktionsfähig oder können unter Mac OS nicht installiert werden. Es wird daher dringend empfohlen, Seek in einer virtuellen Maschine zu installieren, vorzugsweise unter Ubuntu.

Catalina


Dieser Abschnitt führt Sie durch die Installation der vorausgesetzten Pakete, für weitere Schritte lesen Sie bitte die Hauptinstallationsanleitung

Zunächst müssen Sie Fink und MacPorts installieren, zwei Paketverwaltungsprogramme für Mac OS X. Die meisten Pakete werden von Fink installiert, während einige von MacPorts installiert werden. Folgen Sie diesem Link, um Fink zu installieren: http://www.finkproject.org/download/index.php?phpLang=en und für MacPorts: https://www.macports.org/install.php

Installieren der Pakete

sudo fink install wget curl openssl100-dev git readline6
sudo fink install libxml++2 sqlite3-dev sqlite3
sudo fink install poppler-bin mysql-unified-dev

sudo port install mysql8-server
sudo port install openssh ImageMagick libxslt

Für die folgenden Pakete müssen Sie das dmg-Image herunterladen und manuell installieren:

Libreoffice (alternatives Open Office): http://www.libreoffice.org/download
Java JDK: http://www.oracle.com/technetwork/java/javase/downloads/index.html oder https://jdk.java.net/ (openjdk)
PostGres: https://www.postgresql.org/download/macosx/
Node.js: https://nodejs.org/en/download/

Einrichten von MySQL


https://trac.macports.org/wiki/howto/MySQL

Wichtige Schritte nach der Installation:

Wählen Sie mysql8 beim Standard-Mysql aus:

sudo port select mysql mysql8

Starten Sie den Server:

sudo port load mysql8-server

Initialisieren Sie die Datenbank.

Dabei erhalten Sie ein temporäres Root-Passwort. Sie müssen es aufschreiben, da es später (sehr) schwierig sein wird, es zurückzusetzen. Bei der ersten tatsächlichen Verwendung von mysql (mit dem Befehl mysql) müssen Sie das Root-Passwort ändern (siehe unten).

sudo /opt/local/lib/mysql8/bin/mysqld --initialize --user=_mysql

Erster Start von mysql:

mysql -uroot -p <PASSWORD> # angegebenes Passwort verwenden

Sie können nichts tun, bevor Sie ein neues Passwort für root eingerichtet haben:

ALTER USER 'root'@'localhost' IDENTIFIED BY 'newpassword';

MySql hat standardmäßig eine neue Authentifizierungsmethode. Um sicherzustellen, dass Seek sich damit verbinden kann, müssen Sie angeben, dass der Seek-DB-Benutzer (festgelegt in Database.yml) die alte “native password”-Methode verwenden kann:

ALTER USER 'ldhmainuser'@'localhost' IDENTIFIED WITH mysql_native_password

Dann aktivieren Sie die neuen Privilegien:

flush privileges;

PostGres Gem installieren


Um die PostGres-Unterstützung mit Gem zu installieren, wird der Pfad zu den Binärdateien benötigt:

sudo PATH=$PATH:/Library/PostgreSQL/x.y/bin gem install pg

für PostGres 10 wäre es zum Beispiel:

sudo PATH=$PATH:/Library/PostgreSQL/10/bin gem install pg

Puma Gem installieren


Puma braucht eine Option, um mit dem neuen Xcode zu kompilieren:

gem install puma:4.3.5 -- --with-cflags="-Wno-error=implicit-function-declaration"

Andere Hinweise


Standardmäßig verbindet sich der mysql-Client mit dem mysql-Server über einen Socket unter /tmp/mysql.sock. Möglicherweise installieren Sie jedoch standardmäßig die .sock-Datei unter /opt/local/var/run/mysql8/mysqld.sock. Daher muss die .sock-Datei in database.yml neu konfiguriert werden

socket: /opt/local/var/run/mysql8/mysqld.sock

Und auch wenn Sie den mysql-Client ausführen wollen, müssen Sie den Pfad der .sock-Datei unter der Option -S

Möglicherweise müssen Sie den Installationsort von Libreoffice angeben, bevor Sie den Befehl soffice ausführen. Sie können z.B. folgende Zeile in ~/.bashrc einfügen

export PATH="$PATH:/Programme/LibreOffice.app/Inhalte/MacOS/"

Verbindung zu MySQL von einem Client aus


MacPorts deaktiviert standardmäßig vollständig entfernte Verbindungen, die für die meisten SQL-Clients erforderlich sind. Um sie zu aktivieren, können Sie die my.cnf bearbeiten:

sudo vim /opt/local/etc/mysql8/my.cnf
# MacPorts-Standardeinstellungen verwenden
# !include /opt/local/etc/mysql8/macports-default.cnf

[client]
port                   =  3306
socket                 = /opt/local/var/run/mysql8/mysqld.sock
default-character-set  =  utf8

[mysqld_safe]
socket                 = /opt/local/var/run/mysql8/mysqld.sock
nice                   =  0
default-character-set  = utf8

[mysqld]
basedir="/opt/local"
socket                 =  /opt/local/var/run/mysql8/mysqld.sock
port                   = 3306
bind-address           =  127.0.0.1
skip-external-locking
#skip-networking
character-set-server   =  utf8

[mysqldump]
default-character-set  =  utf8

Starten Sie dann MySQL neu (möglicherweise müssen Sie den Prozess beenden):

sudo port unload mysql8-server

ps -ax | grep mysql -> wenn mysqld noch da ist, verwenden Sie die aufgelistete PID:

sudo kill PID

dann

sudo port load mysql8-server