[gelöst] factorio unter CentOS 7 – [16.1] 'GLIBC_2.18' not found

Problembeschreibung:
Factorio startet nicht unter CentOS 7 mit dem Fehler 'GLIBC_2.18' not found

Hintergrund ist wohl, dass CentOS mit glibc 2.17 ausgeliefert wird, was normal auch kein Problem sein sollte. Bei Factorio aber offensichtlich schon. Für mich war das Problem etwas kniffeliger, denn dafür musste ich die neuere Version herunterladen und kompilieren, was sich als nicht ganz problemfrei herausgestellt hat.

Erst einmal gab es im Factorio Forum diese äußerst gelungene Anleitung für eine Side-by-Side Installation von glibc 2.18. (Archiv)

Leider kompilierte dann glibc nicht sauber durch, die Lösungen habe ich hier (Archiv) und hier (Archiv) gefunden.

Damit konnte ich dann factorio (fast) starten, es fehlte noch folgende Zeile:

PATH=/opt/glibc-2.18/bin:$PATH LD_LIBRARY_PATH=/opt/glibc-2.18/lib:/usr/lib64 /opt/glibc-2.18/lib/ld-linux-x86-64.so.2 /home/factorio/factorio/bin/x64/factorio

An der Stelle fehlen jetzt nur noch die Parameter für factorio, aber das ist ja nur Formsache.

Collabora Office – Docker Installation – Vorbereitungen

Da ich jetzt auch einmal für meine Nextcloud Instanz Office nutzen möchte, beginne ich mit der Installation von Collabora Office, das eine Docker Installation voraussetzt.

Hier eine Anleitung für die Installation von Docker
https://docs.docker.com/install/linux/docker-ce/centos/
http://archive.is/uIr87

Außerdem essenziell die Anleitung bei Nextcloud direkt:

Collabora Online Office

Am Ende musste ich noch darauf achten, dass meine neue Subdomäne office.netreaper auch per SSL erreichbar ist, dann funktionierte alles sofort:

 

NextCloud: Zend und PHP OpCache konfigurieren

Hier eine Anleitung um die OP-Cache Einstellungen für PHP im Nextcloud durchzuführen:

Quelle:
https://www.webfoobar.com/index.php/node/31
https://archive.is/wgSDr

  1. Install the PHP Zend OPcache:

    
    yum install php-pecl-zendopcache
      
  2. Configure Zend OPcache optimized for your PHP application. Edit opcache.ini:

    
    vi /etc/php.d/opcache.ini
      

    … and change the following to:

    
    opcache.revalidate_freq=0
    opcache.validate_timestamps=0 
    opcache.max_accelerated_files=20000
    opcache.memory_consumption=128
    opcache.interned_strings_buffer=16
    opcache.fast_shutdown=1
    
    

Das ist im wesentlichen alles.

mounten von Netzwerkfreigaben, fstab, irpstacksize

https://www.thomas-krenn.com/de/wiki/Windows_Freigabe_unter_Linux_mounten

//nr-pc5/nextcloud_data /mnt/nr5-nextclouddata cifs uid=1000,gid=1002,credentials=/home/admin/.nr-pc5-credentials,iocharset=utf8,sec=ntlm,file_mode=0770,dir_mode=0770 0 0

Credentials-Datei:

username=Benutzer
password=dasPasswort

http://www.its05.de/computerwissen-computerhilfe/pc-hilfe/registry_und_werte_windows/irpstacksize.html

Befehle: screen

Der Befehl screen erlaubt es eine Art paralleles Terminal in einem Terminal zu öffnen, um dort zum Beispiel bestimmte Aufgaben abarbeiten zu lassen und die Möglichkeit zu haben auf dieses Terminal zuzugreifen.

screen ist im normalen repository vorhanden und kann mit yum install screen installiert werden.

Eine ausführlichere Anleitung gibt es in diesem Youtube-Video:

(Mirror)

Beispiele:

screen -ls
Listet die vorhandenen Screens auf zusammen mit der PID.

screen -h 1024 -dmS minecraft java -Xms1G -Xmx1G -jar minecraft_server.jar nogui; screen -r minecraft
Startet einen screen "minecraft", startet java, hält 1024 Zeilen der Terminalausgabe vor und wechselt direkt in den screen namens minecraft
Nachteil: sobald die Ausführung des Befehls "java" abgeschlossen ist (zum Beispiel wenn der Server abstürzt) ist auch der screen nicht mehr vorhanden.

screen -dmS test-screen bash -c "/usr/bin/top; exec bash"
Eine Vergleichbare Ausführung, allerdings wird im Anschluss an die Ausführung des Programms top der screen erhalten.

Installation von Nextcloud unter CentOS 7 + MariaDB + Apache + PHP 7

Mit dieser Anleitung (Archiv) habe ich es hinbekommen die Installation von Nextcloud hinzubekommen und abzuschließen. Folgende Komponenten waren Bedingungen:

MySQL or MariaDB
PHP 7.0 +
Apache 2.4 with mod_php modul

Am Ende habe ich eine Weile Fehlersuche machen müssen, weil ich zwar die Firewall angepasst hatte, aber vergessen die Firewallregeln neu zu laden.

firewall-cmd --permanent --zone=public --add-port=80/tcp
firewall-cmd --permanent --zone=public --add-port=443/tcp
firewall-cmd --reload

In der Anleitung ist noch Version 11.0.2 von Nextcloud vermerkt, da hätte ich auch direkt Version 12.0.0 installieren können. Darauf ist die Installation aber auch von ganz alleine gekommen, später in der Konfigurationsoberfläche hatte ich den Hinweis und konnte auch direkt updaten. Das klappte 1a.

Aktuell bringt mir Nextcloud noch folgende Meldungen die ich ausbügeln muss:

Außerdem fehlt mir noch ein SSL Zertifikat, da werde ich mal nach einem von LetsEncrypt Ausschau halten.

Erste Linux Session: 2017-07-22 | Was ich bisher gelernt habe, Befehle + Mechanismen

Gestern meine erste "Linux Session", hier nur stichpunktartig was ich gelernt habe. Bedauerlicherweise ist mir die erste Logdatei vom SSH-Client PuTTy verloren gegangen, die zweite habe ich aber noch.

Grundlegendes

Instinktiv richtig gemacht habe ich bei meiner Erstinstallation, dass ich neben root auch einen weiteren Benutzer angelegt habe. Den root nimmt man nur wenn man den root braucht, also arbeitet man im Normalfall mit Benutzerrechten. SSH-Zugriff über den Benutzer root ist komplett abgeschaltet (dazu später mehr).
Das CentOS 7 läuft bei mir in einer Hyper-V VM im Windows 10 Host, ganz hervorragend. Ich erinnere mich beim Installationsassistenten etwas wie einen Dienst für Virtualisierungen mit installiert zu haben. Auf jeden Fall kann ich z.B. das herunterfahren Kommando vom Host weiterleiten an den Client. Das reicht für mich.

erste Software-Installation: xrdp

Da ich der irrigen Annahme war ich bräuchte ja wohl garantiert eine Möglichkeit auch per Microsoft RDP auf den Server zuzugreifen, habe ich xrdp installiert. Diese Anleitung (Archiv) hier war dafür sehr hilfreich, und ich habe gleich etliche andere Sachen gelernt.

Die Installation der Repositorys:

# rpm -Uvh https://dl.fedoraproject.org/pub/epel/7/x86_64/e/epel-release-7-5.noarch.rpm
# rpm -Uvh http://li.nux.ro/download/nux/dextop/el7/x86_64/nux-dextop-release-0-1.el7.nux.noarch.rpm

Dabei habe ich schon den ersten Fehler festgestellt. Die Doku war von Anfang 2016, inzwischen gibt es das epel-release 7.10. URL angepasst, schon klappte alles.

Die Installation des xrdp:

# yum -y install xrdp tigervnc-server

Und sehr wichtig für mich: das starten des Services und das setzen auf enabled, also mitstarten nach jedem reboot.

# systemctl start xrdp.service
# systemctl enable xrdp.service

Und natürlich das setzen der Firewall-Ausnahme auf dem entsprechenden Port, inklusive obligatorischem Reload.

# firewall-cmd --permanent --zone=public --add-port=3389/tcp
# firewall-cmd --reload

netstat und grep

netstat kann die offenen Verbindungen zeigen, und grep generell kann die Ausgaben bestimmter Zeilen beschränken.

netstat -nlp|grep -i tcp

Gibt eine Liste der offenen tcp und tcp6 Verbindungen, das -i sorgt dabei dafür, dass nicht auf Groß- und Kleinschreibung geachtet wird. Mehrere Begriffe lassen sich so filtern:

netstat -nlp | grep -i 'tcp\|udp'

In dem Fall bekomme ich also die Liste der tcp und udp Verbindungen angezeigt.

locate

Sucht Dateien im Filesystem mit der Benennung. Mit updatedb lässt sich die Liste aktualisieren, dauert ggf etwas. Benutzt hatte ich das für locate sshd, um die Konfigurationsdatei des ssh-Dienstes anzupassen

ps -waux

War irgendwie wichtig, zeigt glaube ich die Liste aller Tasks, beginnend mit 1.

top und htop

Das Programm top zeigt die Liste der Tasks mit der höchsten CPU-Last absteigend. htop, nachinstalliert mit

yum install htop

macht dasselbe, aber schicker und einfacher zu bedienen mit mehr Möglichkeiten. In htop kann man auch Prozesse direkt abschießen, ist also sehr hilfreich und sollte immer mit installiert werden.

runlevel und init

Mit den verschiedenen init-leveln kann man bestimmte Betriebszustände des OS auslösen, init 1 versetzt in den Modus ohne Netzwerk und nur mit lokaler Konsole direkt an der Maschine, init 3 ist ein normaler Zustand allerdings ohne grafische Oberfläche (sehr sinnvoll, wenn man die mal neu starten muss), init 5 ist der normale Betriebsmodus mit grafischer Oberfläche.

Laut Doku lässt sich das System mit init 0 herunterfahren, init 6 rebootet.

Das ganze lässt sich auch verketten (wie generell alle Kommandos), das sieht dann z.B. so aus:

init 3; sleep 2; init 5

Das Kommando beendet also die grafische Oberfläche, wartet 2 Sekunden, startet dann die grafische Oberfläche neu.

Verzeichniszeug

mkdir name
rmdir name
rm -Rf name
rm -Rf /

Ist für inzwischen selbsterklärend, vor Allem der letzte Befehl.

df -h

zeigt den freien Speicherplatz der verbundenen Laufwerke. -h zeigt dabei die "human readable" an, also mit Einheiten, G wie GB, M wie MB, etc.

cat und fstab

Die Datei /etc/fstab ist die Konfigurationsdatei um das Einhängen von Partitionen zu automatisieren, z.B. beim Neustart.

Das cat zeigt den Inhalt einer Datei, also führt mich cat /etc/fstab zu diesem Ergebnis:

#
# /etc/fstab
# Created by anaconda on Sun Jul 16 13:34:56 2017
#
# Accessible filesystems, by reference, are maintained under '/dev/disk'
# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info
#
/dev/mapper/cl_nr--lx11-root / xfs defaults 0 0
UUID=192110e7-6a34-4fd4-817b-083d243958b4 /boot xfs defaults 0 0
/dev/mapper/cl_nr--lx11-swap swap swap defaults 0 0

Was das Neueinhängen und automatische Einhängen von Laufwerken angeht, gibt es bei ubuntuusers wohl eine brauchbare Anleitung (Archiv).

vim und nano, Editoren

vim, ein was die Bedienung angeht Schmerzen bereitender Editor.
nano, ebenfalls Schmerzen bereitend, aber für Umsteiger leichter zu bedienen.

mc - midnight commander

Der von MS DOS Zeiten bekannte midnight commander, mc, lässt sich nachinstallieren. Ich glaube mit yum install mc, das war schon alles.
Sehr praktisch wenn man sich den Inhalt von Dateien anschauen will.

man

Ein Allzweckmanual für alle Befehle.

man <befehl>

Zeigt das Handbuch zu einem bestimmten Befehl an. Mit einem Slash "/" kann man bestimmte Begriffe suchen.

ssh und sshd

Auf einen Tipp hin habe ich die Konfiguration des sshd verändert, und zwar um das einloggen durch den root-Benutzer per ssh zu verhindern. Klappt soweit:

PermitRootLogin no

setzen in der Datei /etc/ssh/sshd_config, und anschließend mit systemctl restart sshd den Dienst neu starten.

history

history zeigt die Eingabehistorie des jeweils angemeldeten Benutzers an. im Standard limitiert auf 1000 Einträge.

SELinux

Standardmäßig aktiviert unter CentOS, soll ein "abgehärtetes", besonders sicheres Linux schaffen. Habe ich deaktiviert, wie das geht schreibt RedHat, die das zusammen mit der NSA entwickelt haben, hier (Archiv).

Linux-Tagebuch: 2017-07-22 – ein Neustart

Nach einiger Zeit Pause beschäftige ich mich mal wieder mit einer Linux-Installation.

Bisher war es immer so, dass ich es ein bisschen probierte, dann irgendwas fundamental nicht klappte, und ich wieder damit aufgehört habe. Verschiedene Distributionen habe ich durch, Ubuntu, Debian, Mint, und ganz früh in den 00er Jahren auch mal SuSe.

Jetzt ändere ich meine Herangehensweise. Ein klares Ziel, Dokumentation darüber was ich gemacht habe, welche Mechanismen und Befehle ich gelernt habe, und wie sie anzuwenden sind. Mein Ziel bis zum 02.08.2017: Eine CentOS 7 Installation mit NextCloud hinbekommen, möglichst eigenständig. Mit eigenständig meine ich, selbst Anleitungen zu erlesen und hinzubekommen, also mit möglichst wenig fremder Hilfe. Erfreulicherweise habe ich jemanden, der mir begeistert dabei hilft wenn es Fragen gibt.

CentOS 7

CentOS wurde mir empfohlen, weil es die Community-Variante des Red Hat Enterprise Linux ist, nur eben ohne entsprechende Zertifizierungen und Support.

NextCloud 

Der Fork von OwnCloud wurde mir von mehreren Seiten empfohlen. Später möchte ich die Lösung auch bei uns in der Firma zum Einsatz bringen, weil wir so etwas gut gebrauchen können.