Jo's Forum

Computer & Software => LINUX => Thema gestartet von: Jo am 26. Januar 2020, 11:42:38

Titel: TuTo: Manjaro (KDE) installieren
Beitrag von: Jo am 26. Januar 2020, 11:42:38
Manjaro Homepage (https://manjaro.org/)
Stand 2020-02-16

LINUX MANJARO
Stabil mit immer aktueller Software
Basiert auf die leichtgewichtige Distribution Arch Linux
Viele aktuelle Desktops XFCE, GNOME, CINNAMON, KDE u.v.m.

(https://secure.jolichter.de/smf/tutorials/KDEmanjaro/Manjaro_KDE_2020-02.jpg)

VORWORT    direkt zum TUTORIAL (#post_TuTo)
Dank Knoppix, Ubuntu und Mint ist LINUX erfolgreich geworden. Eine Live-DVD oder USB-Stick zum testen und installieren ist mit der simplen Bedienoberfläche auch für Einsteiger geeignet. Mit solch einem LINUX Live-System habt ihr immer eine Rettungs DVD oder Stick zur Hand um z.B. eure Daten zu retten oder ins Internet zu gehen! Ich nutze seit vielen Jahren die Debian Distributionen, Ubuntu, Mint oder KDE neon und habe dabei verschiedene Desktops getestet. Cinnamon, XFCE, MATE, UNITY (rip), GNOME oder KDE - ist alles Geschmackssache und jeder kann sich sein Lieblings-Desktop installieren.

Leider ist Ubuntu für mich heute nicht mehr das was es zu Beginn war. Schlecht gepflegte Universe, Amazon-Anbindung, schwieriges Verhältnis zur Open Source-Community und dann noch die Katastrophe mit dem UNITY-Desktop, was viele Ressourcen gekostet hat. Klar, Mint ist inzwischen das bessere Ubuntu, leider aber auch davon abhängig.

Auf der Suche nach einer Alternative, die auch meinen Lieblings-Desktop KDE voll unterstützt, habe ich mich nun für Manjaro entschieden. Mein erstes nicht-Debian-System ;-)

WARUM NUTZE ICH NUN MANJARO?
Manjaro lief selbst in meiner virtuellen Maschine schneller als mein damaliges KDE neon. Bootzeit meines PCs wie hier beschrieben dauert mit open-iscsi, Apache Web Server und MySQL ca. 10 Sekunden bis zur Anmeldung, weitere 3 Sekunden bis zum KDE Desktop, welcher sofort voll verfügbar ist. Das Laden von Anwendungen, wechseln zwischen den Anwendungen und booten des Computer ist einfach schneller. Außerdem mag ich ein immer aktuelles System.

Manjaro (https://wiki.manjaro.org/index.php?title=Hauptseite) ist eine auf Arch (https://wiki.archlinux.de/title/Hauptseite) Linux basierende Linux-Distribution, die in Deutschland, Frankreich und Österreich entwickelt wird. Es ist in erster Linie ein freies Betriebssystem für Personal Computer, welches auf Benutzerfreundlichkeit ausgerichtet ist. Wie seine Basis, Arch Linux, nutzt es ein Rolling-Release-Modell. Jedoch werden bei Manjaro die Paketupdates nicht kontinuierlich, sondern gesammelt und mit Vortest oft als Blockupdate ausgeliefert.

HAUPTMERKMALE
Manjaro teilt viele Eigenschaften mit Arch. Hierzu gehören insbesondere:

Allerdings besitzt Manjaro auch einige Eigenschaften, die es von Arch deutlich unterscheiden, insbesondere:
Quelle: wiki.manjaro.org (https://wiki.manjaro.org/index.php?title=%C3%9Cber_Manjaro)

Mit Manjaro bekommt ihr neueste Technologie, die fertig entwickelt und umfassend getestet wurde (Cutting Edge). Rolling-Release-Modelle bleiben immer aktuell. Bedeutet daher auch öfters größere Updates, was eine schnelle Internetverbindung voraussetzt.

Aber Vorsicht, im produktiven Betrieb würde ich solche Systeme meiden. Immer das neuste zu haben, selbst wenn umfassend getestet, halte ich für wenig sinnvoll und könnte Mitarbeiter die nur Anwender sind irritieren. Hier würde ich ein Linux LTS wie z.B. Linux MINT (https://secure.jolichter.de/smf/index.php/topic,263.0.html) nehmen, welches 5 Jahre Langzeitsupport bietet.



TUTORIAL
Hier mein TuTo um Manjaro mit KDE auf einer leeren Festplatte (kann auch während der Einrichtung gelöscht werden) mit /home auf eine extra Partition zu installieren. Die Installation auf einer SSD Festplatte hat keine 5 Minuten gedauert! Die Bilder aus meiner VM zeigt die Testinstallation von Manjaro 18.1.5 auf einer virtuellen 30GB Festplatte.

INHALT
Manjaro installieren (#post_install)
Optimieren und pflegen (#post_optimize)
Paketverwaltungsbefehle (#post_PM)
Programme deinstallieren & installieren (#post_programs)
SSD optimieren (#post_SSD)
VirtualBox installieren (#post_VM)
Webserver installieren und einrichten (lokal) (#post_webserver)

1 ) Download Manjaro KDE Plasma 64 bit Version (Live Image), testen und installieren
Ich wähle die minimal Basis-Desktop-Umgebung ohne vorinstallierte zusätzliche Softwarepakete aus, Download Link (https://manjaro.org/download/official/kde/).
(https://secure.jolichter.de/smf/tutorials/KDEmanjaro/Manjaro-download.jpg)

Wichtig: Erstellt vor der Installation ein Backup!

Das Live-Image habe ich mit dd (disk dump) auf einen USB-Stick kopiert. Unetbootin funktioniert anscheinend mit Efi nicht (komme beim booten immer nur in grub rescue). Unter Windows soll das mit Rufus und dem DD-Modus funktionieren (ungetestet). Ich habe das per Terminal wie folgt getan.

ACHTUNG! Beschreibt das richtige Laufwerk! Partititonen listen:
sudo fdisk -l
Pfad zur ISO-Datei muss angepasst werden und als USB-Gerät (z.B. /dev/sde) nicht die Partitionsnummer (z.B. /dev/sde1) angegeben!
sudo dd bs=4M if=/home/jo/Downloads/manjaro-kde.iso of=/dev/sde status=progress oflag=syncHinweis: In Manjaro selbst könnt ihr dafür den Suse Studio Imagewriter nutzen.
(https://secure.jolichter.de/smf/tutorials/KDEmanjaro/Terminal_dd.png)

Beim Starten vom Live-Image per VM hatte ich ca. 2 Minuten einen schwarzen Bildschirm, also etwas Geduld und ihr könnt Manjaro testen, im echten System ist das viel schneller.
(https://secure.jolichter.de/smf/tutorials/KDEmanjaro/Manjaro_Boot.jpg)

Wenn das Netzwerk, Soundkarte usw. funktioniert, einfach auf das Icon "Install Manjaro Linux" klicken.
(https://secure.jolichter.de/smf/tutorials/KDEmanjaro/Manjaro_install_001.jpg)
(https://secure.jolichter.de/smf/tutorials/KDEmanjaro/Manjaro_install_002.jpg)
(https://secure.jolichter.de/smf/tutorials/KDEmanjaro/Manjaro_install_003.jpg)
(https://secure.jolichter.de/smf/tutorials/KDEmanjaro/Manjaro_install_004.jpg)

Zwei Btrfs-Partitionen manuell anlegen. Swap-Partition in Testumgebung nicht notwendig, seit Kernel 5 erstelle ich eine swap-Datei (#post_swapDatei) nach dem Installieren:
Habe zum Testen die Home-Partition mit LUKS (dm-crypt) verschlüsselt, Nachteil: Nach der Installation erscheint die Passwortabfrage für die Home-Partition während des Boot-Prozesses, bei einem One-User System melde ich mich daher automatisch an um nicht 2x ein Passwort angeben zu müssen. Mit PAM (https://wiki.archlinux.org/index.php/Pam_mount) lässt sich das automatisch einbinden, setzt jedoch gute Linux-Kenntnisse voraus.

Gute Alternative: Unter KDE können mit Plasma Vault (https://curius.de/blog/13-betriebssysteme/open-source/303-plasma-vault-cloudspeicherverschluesselung-einfach-gemacht) Ordner per EncFS oder CryFS nachträglich sicher verschlüsselt und eingebunden werden. Finde ich sogar besser, z.B. kann beim Öffnen eines Vault-Ordner das Netzwerk und Bluetooth automatisch deaktiviert werden. In dem Fall also die Home-Partition als Btrfs-Partition ohne Verschlüsselung anlegen.

(https://secure.jolichter.de/smf/tutorials/KDEmanjaro/Manjaro_install_005.jpg)

Nachtrag: Partitionen meiner NVMe SSD die kein "Legacy Mode" unterstützt, daher eine EFI-Systempartition (ESP), root und home (ohne swap):
(https://secure.jolichter.de/smf/tutorials/KDEmanjaro/Partitionen_efi_ohne_swap.jpg)

(https://secure.jolichter.de/smf/tutorials/KDEmanjaro/Manjaro_install_006.jpg)
(https://secure.jolichter.de/smf/tutorials/KDEmanjaro/Manjaro_install_007.jpg)
(https://secure.jolichter.de/smf/tutorials/KDEmanjaro/Manjaro_install_008.jpg)

2 ) PAMAC
Nach dem Start kann mit Pamac (https://wiki.manjaro.org/index.php/Pamac) alles aktualisiert werden und mit dem Einstellungsmanager (https://wiki.manjaro.org/index.php?title=Manjaro_Einstellungs_Manager) z.B. zusätzliche Sprachpakete installiert werden. Im Kontextmenü Optionen können die Kernel-Benachrichtigungen angepasst werden, ich lasse nur bei LTS-Kernel benachrichtigen.

Pamac ist ein grafischer Paketmanager von Manjaro und als Unterbau dient Pacman, welches ich per Kommandozeile im Terminal nutze. Dieser beherrscht auch die Installation von Paketen über das AUR (Arch User Repositories), welches von einer Gemeinschaft verwaltet wird und kann in den Einstellungen aktiviert werden. AUR Benutzer sollten mit dem Build-Prozess vertraut sein! Pacman verwaltet Binärpakete die aus den Repositorys stammen und hält das System aktuell, indem die Paketlisten mit einem Server synchronisiert werden. Durch dieses Server/Client-Modell ist es möglich, Pakete mit allen Abhängigkeiten herunterzuladen, zu installieren bzw. zu aktualisieren.
(https://secure.jolichter.de/smf/tutorials/KDEmanjaro/Manjaro_Pamac.jpg)

3 ) Grub anpassen, z.B. diese Einträge:
kate /etc/default/grubGRUB_DEFAULT=0
GRUB_TIMEOUT=2
#GRUB_TIMEOUT_STYLE=hidden
GRUB_DISTRIBUTOR="Manjaro"
GRUB_CMDLINE_LINUX_DEFAULT="noplymouth"
GRUB_CMDLINE_LINUX=""
GRUB_SAVEDEFAULT=false


dann Grub aktualisieren und den PC neu starten:
sudo update-grub
Ich möchte die Kernelmeldungen beim Ladeprozess mitverfolgen und 2 Sekunden das Grub Menü sehen, um notfalls einen älteren Kernel zu starten (oder beim Booten die linke Shift-Taste festhalten).
Wenn Btrfs genutzt wird und beim starten die Fehlermeldung sparse file not allowed erscheint, muss "GRUB_SAVEDEFAULT" deaktiviert werden. Das Abspeichern funktioniert aus Sicherheitsgründen nicht auf einem RAID-Verbund, einem LVM-Dateisystem, einem Btrfs-Dateisystem oder einem ZFS-Dateisystem (Quelle: GNU GRUB MANUAL (https://www.gnu.org/software/grub/manual/grub/grub.html)).

4 ) SWAP-DATEI
Anstelle einer dedizierten swap-Partition kann seit dem Kernel 5 im Btrfs-Filesystem eine Auslagerungsdatei nachträglich erstellt werden. Quelle: Swapfiles on BTRFS (https://wiki.manjaro.org/index.php?title=Swap#Swapfiles_on_BTRFS)

z.B. eine 8GB swap-Datei anlegen (gleiche Größe wie RAM verfügbar ist, ab 8GB erhöhe ich das nicht mehr), die Reihenfolge ist wichtig:
sudo truncate -s 0 /swapfile
sudo chattr +C /swapfile
sudo btrfs property set /swapfile compression none
sudo fallocate -l 8G /swapfile
sudo mkswap /swapfile
sudo chmod 600 /swapfile
sudo swapon /swapfile
sudo bash -c "echo /swapfile none swap defaults 0 0 >> /etc/fstab"
Eintrag in der fstab kontrollieren:
kate /etc/fstabPC neu starten und prüfen:
swapon -sTipp: Das KDE-Infozentrum zeigt die Speicherbelegung und viele andere Information zum System grafisch an.

Eine swap-Datei kann so entfernt werden:
sudo swapoff /swapfile
sudo rm -f /swapfile
Eintrag aus def fstab entfernen:
kate /etc/fstabPC neu starten.


So das war es eigentlich schon! Mit Pamac könnt ihr fehlende Software installieren/deinstallieren und viel Spaß mit Manjaro haben.

 :-[ O0



Infos und Details zu Manjaro KDE
So wie ich KDE unter Manjaro nutze, evtl. ist was für euch dabei?
Tipps, Anregungen oder Fehler die ihr findet, könnt ihr mir gerne per Kontaktformular (https://jolichter.de/kontakt/) oder Twitter (https://twitter.com/JoLichter) senden.

Version prüfen per Terminal:
lsb_release -aoder per KDE-Infozentrum
(https://secure.jolichter.de/smf/tutorials/KDEmanjaro/KDEmanjaro-Infozentrum.jpg)

5 ) KDE Systemeinstellungen nach eigenen Bedarf und Wünschen anpassen, z.B.
Tipp: Alte Hardware oder lahme Grafikkarte? Dann schaltet die Desktop Effekte aus: Hardware -> Anzeige und Monitor -> Compositor

6 ) Paketverwaltungsbefehle
Link einer Tabelle (https://wiki.archlinux.org/index.php/Pacman/Rosetta) mit Paketverwaltungsbefehle einiger Linux-Distributionen, z.B.:
Komplette System-Aktualisierung:
sudo pacman -Syyuuwenn Pakete auch über AUR installiert wurden (benötigt pacaur, siehe Punkt 9 ):
pacaur -SyyuuManjaro sauber halten (lässt zwei Versionen der Pakete für den Fall, dass ein Downgrade durchgeführt werden muss):
sudo paccache -rk2
ALLES in einer Zeile und nicht mehr benötigte Abhängigkeiten anzeigen[ (verwaiste Pakete):
sudo pacman -Syyuu && sudo paccache -rk2 && sudo pacman -Qdtq
oder ALLES in einer Zeile wenn ihr zusätzlich AUR-Upgrade nutzten wollt:
pacaur -Syyuu && sudo paccache -rk2 && sudo pacman -Qdtq("Failed to parse JSON" erscheint wenn kein AUR genutzt wird)

Verwaiste Pakete entfernen:
sudo pacman -Rsn $(pacman -Qdtq)
Pacman Cache - alle Pakete vollständig entfernen!
sudo pacman -Scc
7 ) Deinstallieren, z.B. Yakuake (drop-down Terminal) + Falkon (Browser):
sudo pacman -Rns yakuake falkon
8 ) Evtl. Pale Moon Browser als Firefox Alternative installieren:
sudo pacman -S palemoon
9 ) ein paar fehlende Pakete installieren (meine):
sudo pacman -S pacaur hunspell-de manjaro-printer system-config-printer cups-pdf libimobiledevice ifuse backintime kolourpaint lame mencoder frei0r-plugins devede vlc gimp kfind kdf kwave mediainfo handbrake gthumb firejail pingus kmahjongg aisleriot libreoffice zip unzip unrar doublecmd plasma-vault encfs cryfs samba imagemagick dconf-editor geanySollte nach einem KDE (qt5) oder Gnome (gtk2) Zweig bzw. Provider zum Auswählen gefragt werden, wählt KDE (qt5).

Hinweis: "LibreOffice Fresh" ist die stabile Version mit den neuesten Funktionen und "LibreOffice Still" ist die stabile Version, die (über einen längeren Zeitraum) mehr Tests unterzogen wurde.

Der LibreOffice Writer nervt seit V 6.2 und wird trotz löschen immer wieder in die Favoritenliste angelegt. Workaround:
rm -R ~/.local/share/kactivitymanagerd
kactivitymanagerd stop; killall plasmashell; kactivitymanagerd start; plasmashell &
Das löscht alle Aktivitäten und Favoriten! Dann die Favoriten neu anlegen.

Plugin Content Aware Healing für GIMP (Filter -> Verbessern -> Heal Selection...):
pacaur -S gimp-plugin-registry
10 ) Druckfunktion aktivieren (benötigt manjaro-printer):
sudo systemctl enable org.cups.cupsd.servicePC neu starten oder manuell die Druckfunktion starten:
sudo systemctl start org.cups.cupsd.service(cups deaktivieren mit disable)

CUPS Web Interface: http://localhost:631 (http://localhost:631)

11 ) Kontact (https://userbase.kde.org/Kontact/de) ist ein Paket das die Programme KMail, KOrganizer und KAddressBook usw unter einem Hut vereint:
sudo pacman -S pacaur kontact kmail kaddressbook korganizer knotes akregator aspell-de
12 ) Evolution (https://wiki.gnome.org/Apps/Evolution) ist eine gute alternative, das ist ein Gnome E-Mail und -Kalender Programm:
sudo pacman -S evolution gnome-keyring seahorse gnupg
GNOME Schlüsselbund automatisch mit Login entsperren (Quelle (https://wiki.ubuntuusers.de/GNOME_Schl%C3%BCsselbund/#Schluesselbund-in-anderen-Desktopumgebungen-automatisch-entsperren)):
kate sudoedit /etc/pam.d/sddmHabe diese 2 Zeilen ans Ende eingefügt:
auth       optional     pam_gnome_keyring.so
session    optional     pam_gnome_keyring.so auto_start


Reset Evolution und deinstallieren:
evolution --force-shutdown
rm -rf ~/.local/share/evolution
rm -rf ~/.cache/evolution
rm -rf ~/.config/evolution
dconf reset -f /org/gnome/evolution/
dconf reset -f /org/gnome/evolution-data-server
sudo pacman -Rns evolution

13) bauh (optional), ist eine GUI für AppImage, Flatpak, Snap, AUR und Web:
sudo pacman -S bauh flatpak
14 ) Roger Router (https://secure.jolichter.de/smf/index.php/topic,287.0.html) benötigt die Pakete libcapi und librm aus den AUR Repos und sollte mit installiert werden (pacaur muss installiert sein):
sudo pacman -S pacaur
pacaur -S librm
pacaur -S libcapi
pacaur -S roger-router pulseaudio pulseaudio-alsa

Installation des Fax-Druckers (cups muss dafür aktiviert sein):
lpadmin -p Roger-Router-Fax -m drv:///sample.drv/generic.ppd -v socket://localhost:9100/ -E -o PageSize=A4
Telefonliste löschen: Erst Liste im Fritz-Router löschen, dann die csv-Datei.
rm ~/.local/share/rm/[USER]/journal.csv
Roger Router Reset:
dconf reset -f /org/tabos/

Eine Alternative ist auch Roger Router per Flatpak zu installieren:
sudo pacman -S flatpakRoger-Router über flathub installieren:
flatpak install flathub org.tabos.roger
Wenn die Warnung "org.freedesktop.Platform.openh264 ist nicht installiert" kommt, versucht folgendes:
flatpak install flathub org.freedesktop.Platform/x86_64/19.08
flatpak update

Roger-Router starten:
flatpak run org.tabos.roger
Faltpak Updates:
flatpak update
Faltpak Liste:
flatpak list
Roger Router deinstallieren:
flatpak uninstall org.tabos.roger
flatpak uninstall --unused
rm -r ~/.var/app/org.tabos.roger/
dconf reset -f /org/tabos/

15 ) Gambas IDE installieren (optional)
In der Gruppe base-devel sind z.B. benötigte pakete wie autoconf, automake, fakeroot, make und gcc enthalten:
sudo pacman -S gambas3 rpm-tools base-develdebhelper installieren (nur nötig wenn Debian Installationspakete erstellt werden sollen):
pacaur -S debhelperWenn ein Gambas Programm unter Arch installiert wird, werden benötigte Pakete wie z.B. der Runtime-Interpreter (gambas3-runtime) automatisch mit installiert (IDE nicht notwendig).

16 ) SSD optimieren
a) In der /etc/fstab dürfen die Optionen "space_cache" und "autodefrag" bei SSD's mit dem Filesystem Btrfs nicht verwendet werden, jedoch noatime (https://btrfs.wiki.kernel.org/index.php/FAQ#Why_I_experience_poor_performance_during_file_access_on_filesystem.3F) (Dateizugriffszeiten nicht speichern) und ssd (https://btrfs.wiki.kernel.org/index.php/FAQ#What_is_the_difference_between_mount_-o_ssd_and_mount_-o_ssd_spread.3F).
(Der Kernel erkennt eine SSD automatisch wenn in der Datei /sys/block/<device>/queue/rotational eine "0" steht, setze die Option ssd sicherheitshalber dennoch)

Beispiel:
UUID=xxxx-xxxx /boot/efi        vfat    umask=0077 0 2
UUID=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx /              btrfs   subvol=@,defaults,noatime,ssd 0 1
UUID=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx /home          btrfs   defaults,noatime,ssd 0 2


Prüfen ob die SSD TRIM (discard) unterstützt:
lsblk --discardDISC-GRAN und DISC-MAX Werte ungleich Null zeigen die TRIM-Unterstützung an. Manuelles trimmen:
sudo fstrim -a -v
Es ist besser manuelles TRIM zu verwenden, daher verwende ich die Option "discard" in der fstab nicht und habe den fstrim.timer systemd Service aktiviert (Standard wöchentlich):
sudo systemctl enable fstrim.timer(kann mit 'disable' wieder deaktiviert werden)

Timer prüfen (oder Systemeinstellungen -> Systemverwaltung -> Systemd -> Timers):
systemctl cat fstrim.timerLogdatei einsehen:
journalctl | grep fstrim
b) Der LINUX-Kernel stellt  tmpfs (https://de.wikipedia.org/wiki/Tmpfs) bereit. Tmpfs unterscheidet sich von einer LINUX Ramdisk insofern, als Speicher dynamisch alloziert wird und weniger genutzte Seiten in einen Swap-Bereich ausgelagert werden können. Diese Zeilen an das Ende in der fstab hinzufügen (sinnvoll ab 8GB RAM):
kate /etc/fstab# dynamic RAMDisk
tmpfs /tmp tmpfs defaults,noatime,size=20%,mode=1777 0 0
tmpfs /var/tmp tmpfs defaults,noatime,size=5%,mode=1777 0 0

(noatime = Dateizugriffszeiten nicht speichern und die /tmp Verzeichnisse benutzen ein Sticky Bit, daher das "mode=1777")

Die Logs lege ich nicht ins Ram, da sonst mein Apache den Start verweigert.
Grund: "/var/log/httpd/" fehlt nach dem Startup. Also entweder das Startscript patchen oder es sein lassen. Davon abgesehen würde ich diese Logfiles ungern auf eine Ramdisk legen, da diese beim Neustart gelöscht werden.

Einstellung nach Neustart prüfen, z.B.:
df -htmpfs           794M  1,2M  792M   1% /tmp
tmpfs           199M     0  199M   0% /var/tmp

(ohne SWAP-Speicher könnte es trotz genug Arbeitsspeicher zu Problemen kommen)

c) Firefox Cache ins RAM verlegen (gilt auch für auch Firefox-ESR und Pale Moon)

Browser starten und in der Adressleiste about:config eingeben.
Dann irgendwo auf dem leeren Bildschirm im Browser, unter about:config,
einen Rechtsklick ausführen und auf "Neu" klicken. Hier einen neuen String mit dem Namen browser.cache.disk.parent_directory und dem Wert /tmp erstellen. Das muss für jeden User wiederholt werden.

d) SMART Werte von NVMe SSD auslesen (z.B. Samsung 970 PRO):
sudo pacman -S pacaur nvme-clilisten:
sudo nvme listInfos lesen:
sudo nvme --smart-log /dev/nvme0n1
e) Eine "~/.xsession-errors" Datei wie unter Debian gibt es hier nicht mehr und ist nun systemd Sache, Log siehe ksystemlog.



VIRTUALBOX installieren
Bei der Installation von VirtualBox wird die Version des aktuellen Kernels benötigt, Ausgabe mit:
uname -r(Ausgabe z.B. "5.4.15-2-MANJARO")

VB installieren:
sudo pacman -S virtualboxund wählt den eben entsprechenden Kernel aus, in dem Fall "linux54-virtualbox-host-modules"

Nach der Installation muss das VirtualBox-Modul dem Kernel hinzugefügt werden. Entweder den PC neu booten oder das Kernel Modul manuell hinzuzufügen:
sudo modprobe vboxdrv
Wird später ein neue Kernel installiert, muss das VirtualBox Modul nicht neu angepasst werden. Das Manjaro-Hardware-Erkennungs-Tool (mwhd-kernel) updated automatisch neue Kernel mit den entsprechenden Modulen.

Benutzer der Gruppe vboxusers hinzufügen, sonst ist kein USB verfügbar:
sudo gpasswd -a $USER vboxusers(entfernen mit: sudo gpasswd -d $USER vboxusers)

Passende "Oracle VirtualBox Extension Pack-x.x.x" (Nutzung von USB 2.0 und 3.0) könnt ihr hier laden und installieren:
Oracle_VM_VirtualBox_Extension_Pack-x.x.x.vbox-extpack (http://download.virtualbox.org/virtualbox/)

(https://secure.jolichter.de/smf/tutorials/KDEmanjaro/VM.jpg)



WEBSERVER (Apache, PHP und MariaDb) installieren
Benutze ich nur um CMS-Seiten LOKAL zu testen. Mein online Server rennt natürlich nur im FastCGI-Mode ohne Desktop Umgebung und die CMS ist entsprechend 'gehärtet' und immer aktuell!

Pakete für Webserver installieren:
sudo pacman -S mariadb php php-apache phpmyadmin php-gd php-imagick
WICHTIG!
Wenn sich die Datenbank (/var/lib/mysql) in einem Btrfs-Dateisystem befindet, sollte das Copy-on-Write für dieses Verzeichnis deaktiviert werden, bevor eine Datenbank erstellt wird (Quelle (https://wiki.archlinux.org/index.php/Btrfs#Copy-on-Write_(CoW))). So wird das copy-on-write für das Verzeichnis und Dateien deaktiviert (no-COW).
Prüfe ob Ordner leer ist:
sudo ls -all /var/lib/mysql/dann:
sudo chattr +C /var/lib/mysql
Wenn nicht leer, hilft dieser Trick um das nachträglich zu tun (als su):
sudo systemctl stop mysqld
mv /var/lib/mysql /var/lib/mysql_old
mkdir /var/lib/mysql
chattr +C /var/lib/mysql
cp -a /var/lib/mysql_old/* /var/lib/mysql
chown -R mysql:mysql /var/lib/mysql
sudo systemctl restart mysqld
wenn das funktioniert hat:
rm -rf /var/lib/mysql_old
MariaDB (MySQL) initialisieren:
sudo mysql_install_db --user=mysql --basedir=/usr --datadir=/var/lib/mysql
MariaDB starten und beim Booten starten:
sudo systemctl start mysqld
sudo systemctl enable mysqld
MariaDB Status prüfen:
systemctl status mysqld(Abbruch mit Strg & C )

Eigentlich sollte es mit dem Script "mysql_secure_installation" ohne MySQL-Passwort weiter gehen, jedoch hat das bei mir seit MariaDB noch nie funktioniert. Also erst das MySQL Passwort setzen:
sudo mysql
MariaDB [(none)]> USE mysql;
MariaDB [(none)]> set password = password('MeinPASSWORT');
MariaDB [(none)]> FLUSH PRIVILEGES;
MariaDB [(none)]> exit

und die MySQL Installation mit diesem Script abschließen (wichtig!):
mysql_secure_installation(Abbruch mit Strg & C )

Hinweis: Sollte das Script euer MySQL Passwort nicht annehmen, hilft eine Reset (sonst überspringen (#post_weiter)):
sudo mysqld_safe --skip-grant-tables &
sudo mysql -u root
dann:
MariaDB [(none)]> use mysql;
MariaDB [(none)]> FLUSH PRIVILEGES;
MariaDB [(none)]> SET PASSWORD FOR 'root'@'localhost' = PASSWORD('deinPASSWORT');
MariaDB [(none)]> exit
Prüfen, reparieren und optimieren der Tabellen:
sudo killall -9 mysqld
sudo mysqlcheck -A --auto-repair -u root -p
sudo mysqlcheck -A --auto-repair -f -o -u root -p

Installation mit diesem Script abschließen (wichtig!):
mysql_secure_installationAls erstes werdet ihr nach den MySQL root Passwort gefragt.
Dann bei der Frage "Switch to unix_socket authentication" per 'n' weiter und bei "You already have your root account protected" auch mit 'n' weiter. Als nächstes sollte auf jeden Fall der Anonymous User entfernt werden wenn der Server produktiv eingesetzt wird. Im nächsten Schritt sollte dem root User das Recht genommen werden sich über das Netzwerk anzumelden (ich arbeite nur lokal). Zusätzlich zum Anonymous User gibt es eine Testdatenbank die entfernt werden sollte. Am Ende werden die Berechtigungen neu geladen.

Die Apache Datei httpd.conf konfigurieren:
kate /etc/httpd/conf/httpd.conf
Wenn Server nur lokal erreichbar sein soll:

Listen 127.0.0.1:80

Diese Zeilen mit einer Raute (#) auskommentieren:

#LoadModule unique_id_module modules/mod_unique_id.so
#LoadModule authn_file_module modules/mod_authn_file.so
#LoadModule mpm_event_module modules/mod_mpm_event.so

Diese Zeile aktivieren (Raute entfernen):

LoadModule mpm_prefork_module modules/mod_mpm_prefork.so

Diese Zeilen am Ende hinzufügen:

LoadModule php7_module modules/libphp7.so
AddHandler php7-script .php
Include conf/extra/php7_module.conf
Include conf/extra/phpmyadmin.conf

und prüfen ob diese Module aktiviert sind:

LoadModule userdir_module modules/mod_userdir.so
LoadModule rewrite_module modules/mod_rewrite.so


dann phpmyadmin.conf anlegen:
kate /etc/httpd/conf/extra/phpmyadmin.conf
Alias /phpmyadmin "/usr/share/webapps/phpMyAdmin"
<Directory "/usr/share/webapps/phpMyAdmin">
    DirectoryIndex index.php
    AllowOverride All
    Options FollowSymlinks
    Require local
</Directory>
Info "Require all granted" nur wenn nicht Lokal!

php.ini konfigurieren:
kate /etc/php/php.iniDiese Zeilen prüfen/anpassen/aktivieren:

date.timezone = Europe/Berlin
extension=gd
extension=pdo_mysql
extension=mysqli
open_basedir = /srv/http/:/var/www/:/home/:/tmp/:/var/tmp/:/var/cache/:/usr/share/pear/:/usr/share/webapps/:/etc/webapps/
session.gc_probability = 1


config.inc.php konfigurieren:
kate /etc/webapps/phpmyadmin/config.inc.phpHier ein langes geheimes Passwort zur Cookie-Authentifizierung setzen, z.B.:
$cfg['blowfish_secret'] = 'seit_phpMyAdmin504-istdasPflicht_undMussLangSein!'; /* YOU MUST FILL IN THIS FOR COOKIE AUTH! */

Apache starten und beim Booten starten:
sudo systemctl restart httpd
sudo systemctl enable httpd

Apache Status prüfen:
systemctl status httpd(Abbruch mit Strg & C )

Listet PHP Module:
php -m
PHP Info Datei erstellen und speichern:
kate /srv/http/phpinfo.php<?php
 phpinfo();
?>

dann im Browser http://localhost/phpinfo.php (http://localhost/phpinfo.php) öffnen, PHP Version und Konfiguration sollte angezeigt werden.

phpMyAdmin (https://de.wikipedia.org/wiki/PhpMyAdmin) ist eine freie Webanwendung zur Administration von MySQL-Datenbanken und MariaDB, im Browser http://localhost/phpmyadmin/ (http://localhost/phpmyadmin/) öffen.

(https://secure.jolichter.de/smf/tutorials/KDEmanjaro/phpMyAdmin.jpg)

Wenn die Fehlermeldung "Auf das $cfg['TempDir'] (/usr/share/webapps/phpMyAdmin/tmp/) kann nicht zugegriffen werden. PhpMyAdmin kann keine Templates zwischenspeichern und ist daher langsam." kommt, den Temp Ordner anlegen und "http" als Besitzer und Gruppe setzen (chmod 777 is dann nicht notwendig):
sudo mkdir /usr/share/webapps/phpMyAdmin/tmp/
sudo chown -R http:http /usr/share/webapps/phpMyAdmin/tmp/

Sollte die Meldung "Der phpMyAdmin-Konfigurationsspeicher ist nicht vollständig konfiguriert, einige erweiterte Funktionen wurden deaktiviert..." kommen, fehlt wahrscheinlich die Datenbank „phpmyadmin“. Dann einfach mit diesem Link die Datenbank „phpmyadmin“ anlegen und die Konfigurationsspeicher-Tabellen einrichten: http://localhost/phpmyadmin/chk_rel.php (http://localhost/phpmyadmin/chk_rel.php).



"User directories" aktivieren ~/public_html
(möchte mein CMS nicht im Ordner /var/www/ testen, sondern in meinem /home)
kate /etc/httpd/conf/extra/httpd-userdir.confDieser Bereich sollte so aussehen:

UserDir public_html
#
# Control access to UserDir directories. The following is an example
# for a site where these directories are restricted to read-only.
#
<Directory "/home/*/public_html">
    DirectoryIndex index.php index.html
    AllowOverride All
    Options MultiViews SymLinksIfOwnerMatch IncludesNoExec
    Require method GET POST OPTIONS
</Directory>
Habe das "Directory Listing" des Apache-Webservers deaktiviert, also "Indexes" entfernt (Zugriff auf alle Unterverzeichnisse werden verwehrt).

Ordner public_html erstellen und Berechtigungen anpassen:
mkdir ~/public_html
chmod 775 ~/public_html
chmod 755 ~
Apache neustarten:
sudo systemctl restart httpd
PHP Info Datei erstellen und speichern:
kate ~/public_html/phpinfo.php<?php
 phpinfo();
?>

dann im Browser "http://localhost/~BENUTZERNAME/phpinfo.php" öffnen, PHP Version und Konfiguration sollte angezeigt werden.

(https://secure.jolichter.de/smf/tutorials/KDEmanjaro/phpinfo.jpg)

Dateien die der Webserver erzeugt oder ändert (z.B. ein CMS) sind nur für Mitglieder der Gruppe 'http' (bei Debian 'www-data') schreibbar. Um diese Dateien zu beschreiben, den Benutzer zu dieser Gruppe hinzufügen (Neustart notwendig):
sudo gpasswd -a $USER http(entfernen mit: sudo gpasswd -d $USER http)

Berechtigungen für home und public_html anpassen/prüfen:
sudo chown -R $USER:$USER ~/
find ~/public_html/ \( -type d -exec chmod 775 {} + \) -or \( -type f -exec chmod 664 {} + \)
sudo chown -R http:http ~/public_html
prüfen:
find ~ ! -user $USER -lsdas sollte nur Dateien aus dem Ordner public_html auflisten.