DNS von Cloudflare

Unter der Quad 1 Adresse 1.1.1.1 ist der neue und schnelle DNS Server von Cloudflare zu erreichen.

Geschwindigkeit

Der DNS Server ist wohl schneller als andere bekannte Server (wie z.B. Google mit 8.8.8.8 oder 9.9.9.9).

Router Einstellung überprüfen

Viele Router erlauben die Angabe eines separaten DNS Servers. Ich hatte den Verdacht, dass der Router meine Einstellung ignoriert. Wie lässt sich das ganze überprüfen? Nach kurzer Recherche im Netz bin ich auf dig gestoßen.

dig +trace google.com

Der Parameter +trace listet alle Hops der verwendeten DNS Server auf. Hier die Ausgabe, wenn ich in der /etc/resolv.conf den DNS Server 1.1.1.1 direkt eintrage. Wie erwartet wird als Zwischenstation der Server 1.1.1.1 verwendet.

[sascha@manjaro ~]$ dig +trace google.com

; <<>> DiG 9.12.1 <<>> +trace google.com
;; global options: +cmd
.                       3395    IN      NS      a.root-servers.net.
.                       3395    IN      NS      b.root-servers.net.
.                       3395    IN      NS      c.root-servers.net.
.                       3395    IN      NS      d.root-servers.net.
.                       3395    IN      NS      e.root-servers.net.
.                       3395    IN      NS      f.root-servers.net.
.                       3395    IN      NS      g.root-servers.net.
.                       3395    IN      NS      h.root-servers.net.
.                       3395    IN      NS      i.root-servers.net.
.                       3395    IN      NS      j.root-servers.net.
.                       3395    IN      NS      k.root-servers.net.
.                       3395    IN      NS      l.root-servers.net.
.                       3395    IN      NS      m.root-servers.net.
.                       3395    IN      RRSIG   NS 8 0 518400 20180531050000 20180518040000 39570 . psZtuQna4T48aHPAQmNtzhKWnQo0EZqjKWVbRQDUWyoBf4ANirz7Urjh qT6Ckuqgt481ZO3PLoYcC7+5QZ8UIBn/we0Iv9MLqFSkJvCLkQkh0GnR AfGcsKBcGWoVECSIyilAXyD5+6fiFj50qnjdOVVym6na5xBQ+e4CRKVs zbPJF1wOjVYIUPdo6tbfWDF6Jpw6cIQ78zJvLTgZ6dhAv8RTWxANwdAI 69iuG0+AEMKAJ+MYl7kPKQ5rIEjwI3KbW9UrZ75VuhmTE8VJF77k1eLb rTe03OLIDFiFPxnQWBR2myYiPdRogRZ+owM0U1pkZavf4Ku8M7hWrm9X GuM14A==
;; Received 717 bytes from 1.1.1.1#53(1.1.1.1) in 23 ms

com.                    172800  IN      NS      e.gtld-servers.net.
com.                    172800  IN      NS      b.gtld-servers.net.
com.                    172800  IN      NS      j.gtld-servers.net.
com.                    172800  IN      NS      m.gtld-servers.net.
com.                    172800  IN      NS      i.gtld-servers.net.
com.                    172800  IN      NS      f.gtld-servers.net.
com.                    172800  IN      NS      a.gtld-servers.net.
com.                    172800  IN      NS      g.gtld-servers.net.
com.                    172800  IN      NS      h.gtld-servers.net.
com.                    172800  IN      NS      l.gtld-servers.net.
com.                    172800  IN      NS      k.gtld-servers.net.
com.                    172800  IN      NS      c.gtld-servers.net.
com.                    172800  IN      NS      d.gtld-servers.net.
com.                    86400   IN      DS      30909 8 2 E2D3C916F6DEEAC73294E8268FB5885044A833FC5459588F4A9184CF C41A5766
com.                    86400   IN      RRSIG   DS 8 1 86400 20180531050000 20180518040000 39570 . fmyvl32YT59pYWAytqMy0LygfSPxwOVkecnTRqgS5x3Aqp1DquqI71We IbDte4ynlZ3WUOcVfOwYSBXrrfyzUxtAPNJgPm3yN2Qg9di6wqgoU8EB 3xapRgkn8WL1PoHDp58hOJP48/mqdkzslvfCqupNSMrZdscONVxpUQxZ NBjlmJ84ItBljqN5CD6Y21NEF80AvO0Dt1NI42hmvf2kyqqmvfyNJMAT 12BHOifxxhuuMsmE60a7XFo8RXBvBAFLF38L5Xgw9Ugp/IbNEwfJY5Cd P9nXFL0ECucUmId6Dc57pqnPMYOqqnhqTqLI7PLCW2skD5kuFHcX5O9Z D4EPXw==
;; Received 1170 bytes from 198.41.0.4#53(a.root-servers.net) in 52 ms

google.com.             172800  IN      NS      ns2.google.com.
google.com.             172800  IN      NS      ns1.google.com.
google.com.             172800  IN      NS      ns3.google.com.
google.com.             172800  IN      NS      ns4.google.com.
CK0POJMG874LJREF7EFN8430QVIT8BSM.com. 86400 IN NSEC3 1 1 0 - CK0Q1GIN43N1ARRC9OSM6QPQR81H5M9A  NS SOA RRSIG DNSKEY NSEC3PARAM
CK0POJMG874LJREF7EFN8430QVIT8BSM.com. 86400 IN RRSIG NSEC3 8 2 86400 20180524044604 20180517033604 36707 com. mj3CI+FBMRijjX08qU/2W6bUPfVM33uf+Cn3sEadXviVBzGOcgwhXrvm GTTLUWLECm1j4I8+ALiWOsVGQM1pN2+xmK/Ed60oLiRSxlsYDJfZFzka 2H4HlxzOPnNNSXourkv8GJghwqxPnqoLRlfhKFB03ifnvv2kdcwVj5H9 rNs=
S849LHDDSVU9A9N2FIRO5NKMQB321BEP.com. 86400 IN NSEC3 1 1 0 - S84CEFMDU6ABFSN4V0L2VLLOASCD5IV2  NS DS RRSIG
S849LHDDSVU9A9N2FIRO5NKMQB321BEP.com. 86400 IN RRSIG NSEC3 8 2 86400 20180525051007 20180518040007 36707 com. MKlqmcYrMRkMA/pzk3g0/Z6pCbJ47y94ie7DMK1uoBa3u7m8GVWMackv s+gymEghFvgrm0El+iQdohQ5gZWayVhHwzsMx8OtNFDJasTR3ztWAzON pNnORavjkfOJpI3Hs0Y3QMxK7DFHPsp5EPuDSTrUH1E6uvPOmLvB+EPO Jek=
;; Received 772 bytes from 192.31.80.30#53(d.gtld-servers.net) in 30 ms

google.com.             300     IN      A       172.217.17.142
;; Received 44 bytes from 216.239.38.10#53(ns4.google.com) in 38 ms

Hingegen wenn der Router verwendet wird, dann taucht der Server 1.1.1.1 nicht auf. Ihr solltet die Einstellungen in eurem Router überprüfen, wenn ihr Wert auf Daten-schutz/sicherheit legt.

[sascha@manjaro ~]$ dig +trace google.com

; <<>> DiG 9.12.1 <<>> +trace google.com
;; global options: +cmd
.                       2671    IN      NS      a.root-servers.net.
.                       2671    IN      NS      b.root-servers.net.
.                       2671    IN      NS      c.root-servers.net.
.                       2671    IN      NS      d.root-servers.net.
.                       2671    IN      NS      e.root-servers.net.
.                       2671    IN      NS      f.root-servers.net.
.                       2671    IN      NS      g.root-servers.net.
.                       2671    IN      NS      h.root-servers.net.
.                       2671    IN      NS      i.root-servers.net.
.                       2671    IN      NS      j.root-servers.net.
.                       2671    IN      NS      k.root-servers.net.
.                       2671    IN      NS      l.root-servers.net.
.                       2671    IN      NS      m.root-servers.net.
.                       2671    IN      RRSIG   NS 8 0 518400 20180531050000 20180518040000 39570 . psZtuQna4T48aHPAQmNtzhKWnQo0EZqjKWVbRQDUWyoBf4ANirz7Urjh qT6Ckuqgt481ZO3PLoYcC7+5QZ8UIBn/we0Iv9MLqFSkJvCLkQkh0GnR AfGcsKBcGWoVECSIyilAXyD5+6fiFj50qnjdOVVym6na5xBQ+e4CRKVs zbPJF1wOjVYIUPdo6tbfWDF6Jpw6cIQ78zJvLTgZ6dhAv8RTWxANwdAI 69iuG0+AEMKAJ+MYl7kPKQ5rIEjwI3KbW9UrZ75VuhmTE8VJF77k1eLb rTe03OLIDFiFPxnQWBR2myYiPdRogRZ+owM0U1pkZavf4Ku8M7hWrm9X GuM14A==
;; Received 717 bytes from 192.168.2.1#53(192.168.2.1) in 26 ms

com.                    172800  IN      NS      a.gtld-servers.net.
com.                    172800  IN      NS      b.gtld-servers.net.
com.                    172800  IN      NS      c.gtld-servers.net.
com.                    172800  IN      NS      d.gtld-servers.net.
com.                    172800  IN      NS      e.gtld-servers.net.
com.                    172800  IN      NS      f.gtld-servers.net.
com.                    172800  IN      NS      g.gtld-servers.net.
com.                    172800  IN      NS      h.gtld-servers.net.
com.                    172800  IN      NS      i.gtld-servers.net.
com.                    172800  IN      NS      j.gtld-servers.net.
com.                    172800  IN      NS      k.gtld-servers.net.
com.                    172800  IN      NS      l.gtld-servers.net.
com.                    172800  IN      NS      m.gtld-servers.net.
com.                    86400   IN      DS      30909 8 2 E2D3C916F6DEEAC73294E8268FB5885044A833FC5459588F4A9184CF C41A5766
com.                    86400   IN      RRSIG   DS 8 1 86400 20180531050000 20180518040000 39570 . fmyvl32YT59pYWAytqMy0LygfSPxwOVkecnTRqgS5x3Aqp1DquqI71We IbDte4ynlZ3WUOcVfOwYSBXrrfyzUxtAPNJgPm3yN2Qg9di6wqgoU8EB 3xapRgkn8WL1PoHDp58hOJP48/mqdkzslvfCqupNSMrZdscONVxpUQxZ NBjlmJ84ItBljqN5CD6Y21NEF80AvO0Dt1NI42hmvf2kyqqmvfyNJMAT 12BHOifxxhuuMsmE60a7XFo8RXBvBAFLF38L5Xgw9Ugp/IbNEwfJY5Cd P9nXFL0ECucUmId6Dc57pqnPMYOqqnhqTqLI7PLCW2skD5kuFHcX5O9Z D4EPXw==
;; Received 1170 bytes from 198.97.190.53#53(h.root-servers.net) in 131 ms

google.com.             172800  IN      NS      ns2.google.com.
google.com.             172800  IN      NS      ns1.google.com.
google.com.             172800  IN      NS      ns3.google.com.
google.com.             172800  IN      NS      ns4.google.com.
CK0POJMG874LJREF7EFN8430QVIT8BSM.com. 86400 IN NSEC3 1 1 0 - CK0Q1GIN43N1ARRC9OSM6QPQR81H5M9A  NS SOA RRSIG DNSKEY NSEC3PARAM
CK0POJMG874LJREF7EFN8430QVIT8BSM.com. 86400 IN RRSIG NSEC3 8 2 86400 20180524044604 20180517033604 36707 com. mj3CI+FBMRijjX08qU/2W6bUPfVM33uf+Cn3sEadXviVBzGOcgwhXrvm GTTLUWLECm1j4I8+ALiWOsVGQM1pN2+xmK/Ed60oLiRSxlsYDJfZFzka 2H4HlxzOPnNNSXourkv8GJghwqxPnqoLRlfhKFB03ifnvv2kdcwVj5H9 rNs=
S849LHDDSVU9A9N2FIRO5NKMQB321BEP.com. 86400 IN NSEC3 1 1 0 - S84CEFMDU6ABFSN4V0L2VLLOASCD5IV2  NS DS RRSIG
S849LHDDSVU9A9N2FIRO5NKMQB321BEP.com. 86400 IN RRSIG NSEC3 8 2 86400 20180525051007 20180518040007 36707 com. MKlqmcYrMRkMA/pzk3g0/Z6pCbJ47y94ie7DMK1uoBa3u7m8GVWMackv s+gymEghFvgrm0El+iQdohQ5gZWayVhHwzsMx8OtNFDJasTR3ztWAzON pNnORavjkfOJpI3Hs0Y3QMxK7DFHPsp5EPuDSTrUH1E6uvPOmLvB+EPO Jek=
;; Received 772 bytes from 192.48.79.30#53(j.gtld-servers.net) in 34 ms

google.com.             300     IN      A       172.217.17.142
;; Received 44 bytes from 216.239.36.10#53(ns3.google.com) in 35 ms

Ich habe das ganze auf einem alten Router von Vodafone getestet. Es handelt sich um eine EasyBox 602 mit der aktuellsten Firmware.

Neuer Milestone M11 erreicht

Die Spring Tool Suite hat mit M11 einen neuen Milestone erreicht

Aus dem Changelog kann man die Unterstützung des JDK10 entnehmen. Das scannen der Projekte wurde bescheunigt, indem der gesamte Prozess jetzt auf dem Java Tooling von Eclipse beruht. Die Spring Tool Suite basiert ab sofort auf Photon. Es wird der letzte Milestone (aktuell ist Photon M6) verwendet.

Fazit

Insgesamt macht die Suite einen guten Eindruck. Probleme die zuvor bestanden existieren nicht mehr und der Workspace kann mit aktuellen Java Projekten verwendet werden. Ich bin weiter gespannt wie sich das Produkt entwickelt.

Download

Die aktuelle Version kann von https://spring.io/tools4 heruntergeladen werden.

Gitea als Webfrontend für GIT

Gitea ist ein auf Gogs basierender Fork für GIT. Aktuell ist Gitea in der Version 1.4.1 verfügbar.

NginX als Reverse Proxy

Betreibt man mehrere Domains/Webdienste auf einem Server (Port 80), so muss eine Anfrage an den passenden Dienst/Port weitergeleitet werden. Hierfür verwendet man einen Reverse Proxy. Ich habe hier auf der Arch Box einen NginX laufen.

Fehler beim pushen großer Commits

Gibt es einen Fehler beim pushen eines Commit mit dem Fehlercode 413, der so aussieht…

413 Request Entity Too Large

dann muss die Konfiguration von NginX angepsasst werden. Diese befindet sich unter /etc/nginx/nginx.conf. Für jeden Dienst gibt es genau einen Server Abschnitt in der Konfiguration.

server {
    listen 80;
    server_name git.xxxx.de;
    client_max_body_size 100M; # Push large objects to gitea

    location / {
        proxy_pass http://127.0.0.1:3000;
    }
}

Damit es nicht zu einer Fehlermeldung kommt, muss der Parameter client_max_body_size angepasst werden. Ich habe hier die maximale Größe auf 100MB beschränkt. Dieses sollte für die allermeisten Anwendungen eines Git-Repositorys reichen.

Lombok

Ist Lombok unter Eclipse installiert und läuft Eclipse auf einer VM größer Java 8, dann kommt es beim aktualisieren des Gradle Modells unter Eclipse zu einer Fehlermeldung die erst einmal keinen direkten Rückschluss auf Lombok zulässt.

Gradle Buildfehler

Ist Lombok im Klassenpfad der VM von Eclipse geladen, dann kommt es zu folgender Fehlermeldung wenn man ein Gradle Projekt in der Workbench aktualisiert.

Errors occurred during the build.
    Errors running builder 'Java Builder' on project 'tornet'.
    Unknown constant pool type 19

Startet man Eclipse auf der Konsole, so kann man zumindest den Stacktrace zu dem BuildError sehen.

java.lang.AssertionError: Unknown constant pool type 19
        at lombok.bytecode.ClassFileMetaData.<init>(ClassFileMetaData.java:104)
        at lombok.bytecode.PreventNullAnalysisRemover.applyTransformations(PreventNullAnalysisRemover.java:42)
        at lombok.core.PostCompiler.applyTransformations(PostCompiler.java:43)
        at lombok.eclipse.agent.PatchFixesShadowLoaded.runPostCompiler(PatchFixesShadowLoaded.java:41)
        at jdk.internal.reflect.GeneratedMethodAccessor44.invoke(Unknown Source)
        at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.base/java.lang.reflect.Method.invoke(Method.java:564)
        at lombok.launch.PatchFixesHider$Util.invokeMethod(PatchFixesHider.java:115)
        at lombok.launch.PatchFixesHider$LombokDeps.runPostCompiler(PatchFixesHider.java:155)
        at org.eclipse.jdt.internal.core.builder.AbstractImageBuilder.writeClassFileContents(AbstractImageBuilder.java:880)
        at org.eclipse.jdt.internal.core.builder.AbstractImageBuilder.writeClassFile(AbstractImageBuilder.java:871)
        at org.eclipse.jdt.internal.core.builder.AbstractImageBuilder.acceptResult(AbstractImageBuilder.java:200)
        at org.eclipse.jdt.internal.compiler.Compiler.processCompiledUnits(Compiler.java:615)
        at org.eclipse.jdt.internal.compiler.Compiler.compile(Compiler.java:472)
        at org.eclipse.jdt.internal.compiler.Compiler.compile(Compiler.java:423)
        at org.eclipse.jdt.internal.core.builder.AbstractImageBuilder.compile(AbstractImageBuilder.java:383)
        at org.eclipse.jdt.internal.core.builder.BatchImageBuilder.compile(BatchImageBuilder.java:211)
        at org.eclipse.jdt.internal.core.builder.AbstractImageBuilder.compile(AbstractImageBuilder.java:315)
        at org.eclipse.jdt.internal.core.builder.BatchImageBuilder.build(BatchImageBuilder.java:76)
        at org.eclipse.jdt.internal.core.builder.JavaBuilder.buildAll(JavaBuilder.java:259)
        at org.eclipse.jdt.internal.core.builder.JavaBuilder.build(JavaBuilder.java:182)
        at org.eclipse.core.internal.events.BuildManager$2.run(BuildManager.java:795)
        at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42)
        at org.eclipse.core.internal.events.BuildManager.basicBuild(BuildManager.java:216)
        at org.eclipse.core.internal.events.BuildManager.basicBuild(BuildManager.java:259)
        at org.eclipse.core.internal.events.BuildManager$1.run(BuildManager.java:312)
        at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42)
        at org.eclipse.core.internal.events.BuildManager.basicBuild(BuildManager.java:315)
        at org.eclipse.core.internal.events.BuildManager.basicBuildLoop(BuildManager.java:367)
        at org.eclipse.core.internal.events.BuildManager.build(BuildManager.java:388)
        at org.eclipse.core.internal.events.AutoBuildJob.doBuild(AutoBuildJob.java:142)
        at org.eclipse.core.internal.events.AutoBuildJob.run(AutoBuildJob.java:232)
        at org.eclipse.core.internal.jobs.Worker.run(Worker.java:60)

Diesen kann man sehen das es zu einem Assertion Error kommt.

Lösung

Zur Zeit ist mir noch keine Lösung hierzu bekannt und es hilft nur den Java Agenten von Lombok aus der Eclipse.ini auszukommentieren.

-vmargs
--add-modules=ALL-SYSTEM
-Xms40m
-Xmx1200m
# build error in projects...
#-javaagent:lombok.j

Eclipse mit GTK in der Version 2 verwenden

Leider gibt es immer noch Problemen (performance regression) bei aktuellen Eclipse Versionen ( > Photon M6). Um dennoch mit Eclipse arbeiten zu können, kann man die IDE in der Eclipse.ini anpassen

Anpassung an der Eclipse.ini

Es muss der Parameter –launcher.GTK_version eingetragen werden. Wichtig hierbei ist, dass der Parameter vor dem Abschnitt -vmargs eingetragen wird.

--launcher.GTK_version
2

Konfiguration von Baloo

Baloo ist der File Indexer von KDE. Die Voreinstellungen von KDE für Baloo sind, dass das gesamte Homeverzeichnis gescannt wird. Dieses hat vor und aber auch Nachteile. Viele Nutzer haben sich schon in der Vergangenheit darüber beschwert, das ihre Maschinen nicht mehr reagieren, weil der Indexer die Resourcen (zum Teil auch durch Bugs) blockiert. Manchmal möchte man aber auch nicht alle Verzeichnisse indizieren, weil dort z.B. nur Quelltexte vorhanden sind. Es gibt leider in der GUI keine Möglichkeit dieses einzustellen. Daher muss man die Konfigurationsdatei von Baloo direkt bearbeiten.

Zum Beispiel mit Kate:

kate ~/.config/baloofilerc

So sieht die Konfigurationsdatei aus:

[Basic Settings]
Indexing-Enabled=true

[General]
dbVersion=2
exclude filters=qrc_*.cpp,*.rej,moc_*.cpp,*.gmo,.uic,__pycache__,ui_*.h,confstat,*.aux,*.tmp,*.orig,*.pc,.moc,*.elc,.obj,*.nvram,*.la,cmake_install.cmake,CMakeCache.txt,*.rcore,.svn,_darcs,*.pyc,lost+found,.histfile.*,.git,*.moc,CTestTestfile.cmake,*.csproj,.xsession-errors*,*.loT,.hg,*.part,.pch,.bzr,Makefile.am,*.m4,*.po,litmain.sh,CMakeFiles,confdefs.h,*~,po,config.status,lzo,*.o,core-dumps,*.swap,autom4te,*.class,CMakeTmp,*.lo,CMakeTmpQmake,*.vm*,libtool,CVS,*.omf,conftest
exclude filters version=2
first run=false
folders[$e]=$HOME/Dropbox
only basic indexing=false

Hier habe ich die Einstellung des includeFolders auf folders[$e]=$HOME/Dropbox geändert. Nun werden nur noch Dokumente innerhalb des Dropbox Verzeichnisses indizierzt. Benötigt man weitere Verzeichnisse, so kann man diese hier einfach hinzufügen.

Gradle Java Plugin

Das Gradle Java Plugin erlaubt das setzten der Source und Target-Compatability im Buildfile. Ist targetCompatability nicht gesetzt, so wird automatisch sourceCompatability gesetzt.

// Java 9
sourceCompatibility = 9
targetCompatibility = 9

// Java 10 (Fehler bei Eclipse < Photon M7)
sourceCompatibility = 10
targetCompatibility = 10

Hierbei ist anzumerken das Eclispe für Java 10 mit Hilfe des Gradle Java Plugins erst ab Photon M7 unterstützt. Bis M6 gibt es Fehlermeldungen, das diverse Java Sprachfeatures erst ab Java >= 5 zur Verfügung stehen. Eclipse interpretiert es wohl als 1.0 oder so.

Java Versionen

Die von Gradle unterstützten Java Versionen finden sich in der Dokumentation: JavaVersion

Konfiguration

Uhrzeit

sudo systemctl start systemd-timesyncd

Uhrzeit überprüfen

Die Einstellungen die die Uhrzeit betreffen, lassen sich mit timectl überprüfen.

$ timedatectl
               Local time: Fr 2018-12-07 09:27:36 CET
           Universal time: Fr 2018-12-07 08:27:36 UTC
                 RTC time: Fr 2018-12-07 08:27:36
                Time zone: Europe/Berlin (CET, +0100)
System clock synchronized: yes
              NTP service: active
          RTC in local TZ: no

Sudo Timeout verlängern

Man muss hierzu nur in der Datei /etc/sudoers am Ende folgende Zeile einfügen:

Defaults timestamp_timeout=120 Die Angabe erfolgt in Minuten. Hier ist der Nutzer also 2 Stunden berechtigt, bevor er zunächst wieder das Passwort eingeben muss.

Software

yaourt aus community repository

Installation Text Editor

Ich verwende gern den Texteditor mcedit mit einer einfachen TUI.

sudo pacman -S mc

Als eine Alternative dazu ist der sehr einfach zu bedienende Editor tilde. Dazu muss aber zuvor yaourt installiert werden.

yaourt --noconfirm -S tilde

Anzahl der Prozesse beim Kompilieren

GNU Make kennt den Parameter -jXX. Mit -j kann die Anzahl der parallelen Prozesse festegelegt werden. Dieses beschleunigt den Buildprozess.

sudo mcedit /etc/makepkg.conf

Ich habe hier auf meinem Dual Xeon SMP den Wert auf 20 eingestellt.

#-- Make Flags: change this for DistCC/SMP systems
MAKEFLAGS="-j20"

Repository hinzufügen

Zunächst muss in der /etc/pacman.conf das archlinuxfr Repository am Ende hinzugefügt werden.

[archlinuxfr]
SigLevel = Optional TrustAll
Server = https://repo.archlinux.fr/$arch

mit

sudo mcedit /etc/pacman.conf

Das Packen der Pakete verhindern

Die Programme die mit yaourt installiert bzw. mit makepkg gebaut werden, werden per default mit xz gepackt. Dieses dauert bei größeren Paken wie bei JDK unnötig lange. Dieses bringt bei der lokalen Installation keinen Vorteil.

Daher sollte in der /etc/makepkg.conf die Endung der Pakete auf .pkg.tar geändert werden. Somit wird eine Kompression der Pakete unterbunden.

sudo mcedit /etc/makepkg.conf

Zeilen ändern in…

#########################################################################
# EXTENSION DEFAULTS
#########################################################################
#
# WARNING: Do NOT modify these variables unless you know what you are
#          doing.
#
PKGEXT='.pkg.tar'
SRCEXT='.src.tar.gz'

Installation

Dann aktualisieren und installieren

sudo pacman -Syy yaourt

Als TUI eignet sich die angepasste Version des yourt-gui Programms.

yaourt --noconfirm -S yaourt-gui-manjaro

Nicht vorhandene gpg keys können automatisch von einem Key Server bezogen werden. Dazu muss die Konfiguration des aktuellen Benutzers von gnupg angepasst oder erstellt werden. Die Datei gpg.conf befindet sich in ~/.gnupg und es muss der Konfigurationsschlüssel keyserver-options mit dem Wert auto-key-retrieve hinterlegt werden.

keyserver-options auto-key-retrieve

Dropbox (optional)

Ich bevorzuge syncthing, da meine Daten nur auf meinen Server liegen und die Bedienung mindestens genauso einfach wie unter Dropbox ist.

yaourt --noconfirm -S dropbox && yaourt --noconfirm -S kde-servicemenus-dropbox

Hinweis: Dropbox GUI im Systray hat Probleme mit dem Öffnen der Nonce URL. Wenn nichts passiert beim Klick auf “sign in”, dann dropbox-cli installieren und dropbox-cli start ausführen und URL im Browser öffnen.

Syncthing

yaourt --noconfirm syncthing

Starten des Dienstes als User beim einloggen.

systemctl --user enable --now syncthing.service

Status von Syncthing überprüfen

systemctl --user status syncthing.service

Tail des Logs des Userprozess kann mit journalctl als User ausgeben werden

journalctl --user -f -u syncthing.service

Die WebUI kann dann auf localhost:8384 erreicht werden.

Java und Entwicklungstools

Full OpenJDK Stack

yaourt --noconfirm -S jre-openjdk-headless jre-openjdk jdk-openjdk openjdk-doc openjdk-src # default = current = JDK 11
yaourt --noconfirm -S jre10-openjdk-headless jre10-openjdk jdk10-openjdk openjdk10-doc openjdk10-src
yaourt --noconfirm -S jre8-openjdk-headless jre8-openjdk jdk8-openjdk openjdk8-doc openjdk8-src

Der Support für Java 9 ist beendet und daher gibt es auch keine Pakete mehr.

Gradle

yaourt --noconfirm -S gradle

Maven

yaourt --noconfirm -S maven

Smartgit

yaourt --noconfirm -S smartgit

Bluetooth Headset

yaourt --noconfirm -S pulseaudio-bluetooth pulseaudio-alsa pavucontrol

Bash-completion

yaourt --noconfirm -S bash-completion

Windows emulation mit Wine

yaourt --noconfirm -S wine-staging wine-mono winetricks wine_gecko q4wine

Fernwartung Anydesk

yaourt --noconfirm -S anydesk

Plasma Integration von Chromium

Die Browser Integration ist mittlerweile im Extra Repository, daher muss nicht mehr die plasma-browser-integration-git aus dem AUR kompiliert werden

yaourt --noconfirm -S plasma-browser-integration

Printing

HP Multifunktionsgeräte

yaourt --noconfirm -S hplip avahi

Avahi Daemon starten

sudo systemctl enable --now avahi-daemon

Druckerkonfiguration mit dem Setup-Tool von HP anlegen. Der Scanner wird auch erst nach dem Setup von scanimage oder skanlite erkannt.

sudo hp-setup

Achtung: Manchmal wird der Drucker nicht richtig per Service discovery erkannt. Dann über advanced -> manual discovery gehen.

Advanced Printing

yaourt --noconfirm -S boomaga-qt5

Mysql & Tools

yaourt --noconfirm -S mariadb mysql-workbench innotop mtop percona-toolkit mycli dbeaver dbeaver-plugin-apache-poi dbeaver-plugin-batik dbeaver-plugin-office dbeaver-plugin-svg-format

Optionnal Gnome-Keyring zum speichern von Passwörtern in Mysql-Workbench

yaourt --noconfirm -S gnome-keyring

Setup MariaDB

Install

sudo mysql_install_db --user=mysql --basedir=/usr --datadir=/var/lib/mysql
sudo systemctl enable --now mysqld

Secure

sudo mysql_secure_installation

Postgres

yaourt --noconfirm -S postgres

Setup

Bestimmte Befehle müssen mit rechten der Gruppe postgres ausgeführt werden. Dazu wechselt man am besten mit sudo -u postgres -i den Benutzer.
initdb -D ‘/var/lib/postgres/data’
createuser –interactive

Postman

REST Abfragen werden in der Cloud gespeichert. Anmeldung über Google.

yaourt --noconfirm -S postman    

Fonts

 yaourt --noconfirm -S ttf-ms-fonts ttf-inconsolata

Virtualisierung

Virtualbox

yaourt --noconfirm -S virtualbox linux418-virtualbox-host-modules vde2 vboxtool virtualbox-ext-oracle
sudo vboxreload # (re)loads all virtualbox kernel modules

ReactOS

Unter https://sourceforge.net/projects/reactos/files/ReactOS/ aktuelle ISO für die BootCD runterladen.

Einstellungen

Trim bei SSD

Wie unter Soild State Drive beschrieben, kann mit dem Programm hdparm festgestellt werden, ob das Laufwerk die TRIM-Funktion unterstützt.

yaourt --noconfirm -S hdparm
sudo hdparm -I /dev/sdX | grep TRIM

Bei Unterstützung gibt hdparm aus…

sudo hdparm -I /dev/sdb | grep TRIM
           *    Data Set Management TRIM supported (limit 8 blocks)
           *    Deterministic read ZEROs after TRIM

Laut Wiki wird empfohlen bei neueren SSD auf periodic Trim zu setzen, da continuous Trim zu häufigen einfrieren führen kann. Daher sollte der Timer fstrim.timer aus dem Paket util-linux aktiviert werden.

sudo systemctl enable fstrim.timer

Mit systemctl list-timers kann man den Timer überprüfen. –all muss angegeben werden, weil der Timer noch nicht gelaufen ist.

#sudo systemctl list-timers --all
NEXT                          LEFT     LAST                          PASSED       UNIT                         ACTIVATES
Sat 2018-08-25 00:00:00 CEST  12h left Fri 2018-08-24 09:09:00 CEST  1h 51min ago logrotate.timer              logrotate.service
Sat 2018-08-25 00:00:00 CEST  12h left Fri 2018-08-24 09:09:00 CEST  1h 51min ago man-db.timer                 man-db.service
Sat 2018-08-25 00:00:00 CEST  12h left Fri 2018-08-24 09:09:00 CEST  1h 51min ago shadow.timer                 shadow.service
Sat 2018-08-25 09:47:41 CEST  22h left Fri 2018-08-24 09:47:41 CEST  1h 12min ago systemd-tmpfiles-clean.timer systemd-tmpfiles-clean>
n/a                           n/a      n/a                           n/a          fstrim.timer                 fstrim.service

Dolphin mit META+E öffnen

Unter Systemeinstellungen –> custom shortcuts eine neue Gruppe my anlegen. Unterhalb der Gruppe my einen neuen Eintrag open dolphin anlegen. Als Trigger META+E angeben und Programm dolphin eintragen.

Quick Window Tiling

Siehe hier

Spring Tool Suite

Die Spring Tools Suite ist noch in der Betaphase und noch nicht im Gegensatz zur Eclipse Oxigen oder Photon IDE vollumfänglich (changelog) unter neueren Java Versionen lauffähig. Dieses macht sich in Abstüzen im gesamten Programm bemerkbar. Pivotal empfiehlt STS 4 noch unter Java 8 laufen zu lassen.

Eclipse.ini

Die zu startende VM (siehe WIKI) kann im .ini File angegeben werden.

-vm
/usr/lib/jvm/java-8-openjdk/bin/java

Die Konfiguration von Eclipse bzw. der Spring Tool Suite kann über About –> Installation details –> Configuration abgelesen werden. Hier taucht dann die verwendete JVM auf. java.version=1.8.0_162.

STS 4 unter Archlinux

Im offiziellen Wiki von Archlinux wird auf ein kleines Skript verwiesen um Programme unter einer anderen JVM zu starten.

#!/bin/sh
export PATH=/usr/lib/jvm/java-8-jdk/jre/bin/:$PATH exec "$@"

unter ~/Bin abspeichern und /Bin z.B. in der ./.bashrc zum Pfad hinzufügen.

# add Bin to Path
PATH=${PATH}:~/Bin

Erweiterte Funktionen laufen nur unter JDK

Eine der erweiterten Funktionen laufen nur unter einer JDK. Siehe Eclipse.ini. Dazu gehört z.B. die live hover information.

Spring Tool Suite 4 mit Lombok verwenden

Der Installer im lombok.jar erkennt das Executable der Spring Tool Suite nicht. Lombok kann jedoch trotzdem verwendet werden. Es muss die händische Installation erfolgen.

Manuelle Installation

Lombok.jar in das Root Verzeichnis kopieren

Anpassung der .ini Datei

Es muss wie bei der normalen händischen Installation der Java Agent von lombok hinzugefügt werden. Dazu im Abschnitt für die JVM Parameter den Agenten (in der Regel am Ende) einfügen.

-vmargs
-Dosgi.requiredJavaVersion=1.8
--add-modules=ALL-SYSTEM
-Xms40m
-Xmx1200m
-javaagent:lombok.jar

Erfolgreiche Installation prüfen

Nach Neustart der Workbench sollte unter About Spring Tool Suite 4 folgender Eintrag zu finden sein:

Lombok v1.16.20 “Dancing Elephant” is installed. https://projectlombok.org/