Skip to content

PostgreSQL 12 und pgAdmin 4 unter Ubuntu installieren oder aktualisieren

Nach gut einem Jahr wurde vor wenigen Tagen die Version 12 der Datenbanklösung PostgreSQL veröffentlicht.

Das Release steht im Zeichen der Performance und bietet beispielsweise mit REINDEX CONCURRENTLY nun eine Möglichkeit Indizes im laufenden Betrieb ohne Einbußen zu erneuern.

Weitere Änderungen sind im Changelog zu finden. Dort finden sich zusätzlich Anweisungen, welche für die ein oder andere Migration relevant sein dürften.

postgres_logo

PostgreSQL 12 unter Ubuntu installieren

Bei der Aktualisierung der vorhandenen Version hat sich nicht allzu viel getan. Der Vorgang ist analog zu Version 11.
 

sudo sh -c  'echo "deb http://apt.postgresql.org/pub/repos/apt/ bionic-pgdg main" >> /etc/apt/sources.list.d/pgdg.list'

wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo apt-key add -

sudo apt update

sudo apt install postgresql-11

Nun kann überprüft werden, ob das System korrekt funktioniert. Dazu wird in die Postgres Console gewechselt.

sudo -u postgres psql

postgres=# \conninfo
You are connected to database "postgres" as user "postgres" via socket in "/var/run/postgresql" at port "5432".

postgresql12


PostgreSQL 11 auf PostgreSQL 12 aktualisieren

Nachdem die neueste Version installiert wurde, kann die alte im folgenden migriert werden.

Unbedingt eine Sicherung der vorhandenen Datenbanken machen.

pg_dumpall > /temp/sicherung

Noch einmal die Installationsinfos anzeigen lassen.

sudo pg_lsclusters

Ver Cluster Port Status Owner    Data directory              Log file
11  main    5432 online postgres /var/lib/postgresql/11/main /var/log/postgresql/postgresql-11-main.log

Sollte eine neue Version bereits installiert sein, muss diese zunächst gestoppt werden.

sudo pg_dropcluster 12 main --stop

Danach das alte Cluster migrieren.

sudo pg_upgradecluster 11 main

Sollte der Vorgang erfolgreich gewesen sein, kann das alte Cluster entfernt werden.

sudo pg_dropcluster 11 main


pgAdmin_4

pgAdmin 4 für PostgreSQL 12 installieren

Für viele bietet sich zur Verwaltung eine grafische Oberfläche an, hier kann der Quasistandard pgAdmin genutzt werden.

Das Tool hat sich in den letzten Jahren gut entwickelt und viele Kinderkrankheiten überwunden.

Das benötigte Repository ist durch die vorhergehende PostgreSQL Installation bereits vorhanden.

sudo apt install pgadmin4 pgadmin4-apache2

Das erste Paket installiert das Tool an sich, das zweite installiert das Webinterface dazu. Bei der Installation werden Mailadresse und Passwort abgefragt, dies wird später für den Login benötigt.

Die fertige Installation kann über den Browser aufgerufen werden.


http://localhost/pgadmin4/

 

Installation einer aktuellen Go Version auf Ubuntu

Go ist eine Open-Source Programmiersprache, welche von Google 2009 entwickelt wurde. Die Sprache ist bei vielen Anwendungen beliebt, darunter Docker oder Kubernetes. 

Nun ist eine neue Version 1.13 erschienen, welche neben Sicherheitsfeatures in den Standardeinstellungen auf TLS 1.3 setzt.
Module welche von den Go Servern geladen werden, sind nun durch eine Checksummenprüfung abgesichert.

Weitere Neuerungen verrät das Changelog

Doch wie kommt Go überhaupt auf das eigene System?

golang

Installation von Golang auf Ubuntu

Als erstes möchte ich die manuelle Installation betrachten.

Auf der Downloadseite muss zunächst nach der offiziellen Version gesucht werden.

wget https://dl.google.com/go/go1.13.linux-amd64.tar.gz

Nach dem Download sollte der Hashwert überprüft werden.

sha256sum go1.13.linux-amd64.tar.gz

    68a2297eb099d1a76097905a2ce334e3155004ec08cdea85f24527be3c48e856  go1.13.linux-amd64.tar.gz

Danach folgt das Entpacken, wobei ihr beim Pfad natürlich auch einen anderen verwenden könnt.

sudo tar -C /usr/local -xzf go1.13.linux-amd64.tar.gz

Nun den PATH anpassen und folgende Zeile unten anfügen.

sudo nano $HOME/.profile

    export PATH=$PATH:/usr/local/go/bin

Die neue PATH Variablen laden.

source ~/.profile

go-installation

Nun kann der finale Test erfolgen, wenn alles klappt solltet ihr folgendes Ergebnis sehen.

go

Go is a tool for managing Go source code.

Usage:

        go command [arguments]

The commands are:

        build       compile packages and dependencies
        clean       remove object files and cached files
        doc         show documentation for package or symbol
        env         print Go environment information
        bug         start a bug report
        fix         update packages to use new APIs
        fmt         gofmt (reformat) package sources
        generate    generate Go files by processing source
        get         download and install packages and dependencies
        install     compile and install packages and dependencies
        list        list packages
        run         compile and run Go program
        test        test packages
        tool        run specified go tool
        version     print Go version
        vet         report likely mistakes in packages

Use "go help [command]" for more information about a command.

 

Installation von Go via apt auf Ubuntu

Golang kann unter Ubuntu ebenfalls über den Paketmanager installiert werden. Dazu muss zunächst ein extra Repository hinzugefügt werden.

sudo add-apt-repository ppa:longsleep/golang-backports
sudo apt update
sudo apt install golang-go

Jetzt könnt ihr euch mit Go austoben.

Im Netz findet ihr jede Menge Beispiele was damit möglich ist.
Zum Beispiel hier oder hier.

 

Ein eigenes Programm ist schnell geschrieben, dazu einfach folgende Schritte ausführen.

Ein neues Verzeichnis anlegen und eine erste Datei anlegen.

mkdir -p /home/user/hello
nano /home/user/hello/helloworld.go


        package main

        import "fmt"

             func main() {
                  fmt.Printf("Hello Go World \n")
             }

Datei builden und ausführen.

cd /home/user/hello

go build
./hello

    Hello Go World

Praktischerweise gibt es eine Online Spielwiese, die zum Probieren einlädt.

Es muss somit zunächst nicht zwingend auf der Kommandozeile gearbeitet werden.

The_Go_Playground

PS. Natürlich kann Golang auch über die vorhandenen Ubuntu Pakete mit sudo apt install golang installiert werden, allerdings erhaltet ihr hier nicht die aktuellste Version.

 

Notepad++ (nicht Notepadqq) unter Ubuntu installieren und nutzen

Ob und wie sich das Tool Notepad++ unter Ubuntu nutzen lässt war vor Jahren schon einmal Thema auf ITrig. 

Damals hatte ich die freie Alternative Notepadqq empfohlen.

Mit der Einführung der Snap Apps und der Verwendung von wine-i386 steht nun das aus Windows bekannte Notepad++ unter Ubuntu zur Verfügung.

 

notepadplusplus

Seit Ubuntu 16.04 sind Snaps fester Systembestandteil, falls dennoch eine Installation nötig sein sollte, ist die mit folgendem Befehl möglich:

sudo apt-get install snapd 

Notepad++ unter Ubuntu installieren

Durch neue Paketformates kann der Notepad Klassiker nun unter Ubuntu verwendet werden.

sudo snap install notepad-plus-plus

Die Notepad++ Version entspricht der Windows Variante und bringt somit auch die gleichen Funktionen mit.

notepadplusplus-ubuntu-snap

Natürlich kann die oben erwähnte Alternative über den gleichen Weg installiert werden.

sudo snap install notepadqq

 

PostgreSQL 11 - die Neuerungen, sowie Installation und Upgrade unter Ubuntu 18.04 LTS

Letzte Woche war es soweit, nach einen Jahr wurde PostgreSQL 11 veröffentlicht.

Die neue Version 11 hat im Vergleich zur letzten viele Änderungen erhalten. Neben Performance wurde auch an der Usability gearbeitet.

PostgreSQL 11 Neuerungen

Die vielleicht beste Neuerung für den Wald und Wiesen Datenbanknutzer betrifft die Postgres Konsole psql. Diese kann nun mit quit und exit verlassen werden, in Ergänzung zu \q oder Strg+D

postgres

Weitere Änderungen sind:

Die Parallelisierung wurde auf Hash Joins, Append, Index Erstellung, UNION-Abfragen und weitere Elemente erweitert.

JIT (Just in Time ) Kompilierung wurde integriert, was nach eigenen Aussagen 30% Geschwindigkeitszuwachs bringt . JIT muss manuell aktiviert werden.

Die Partitionierung wurde verbessert (z.B. hash partitioning) und PRIMARY KEY und FOREIGN KEY Anweisungen sind nun auch auf Partitionen möglich.

Neue Rollen wurden eingeführt (pg_read_server_files, pg_write_server_files, pg_execute_server_program).

Und ALTER TABLE beherrscht nun ADD COLUMN mit NOT NULL als Standardwert. 

 

Dies ist nur ein minimaler Auszug der neuen Features des aktuellen Releases. Daher verweise ich auf die Release Notes.

Nun zur Installation

Installation PostgreSQL 11 unter Ubuntu 18.04 LTS

sudo wget -O - http://apt.postgresql.org/pub/repos/apt/ACCC4CF8.asc | sudo apt-key add -
sudo sh -c 'echo "deb http://apt.postgresql.org/pub/repos/apt/ bionic-pgdg main 11" >> /etc/apt/sources.list.d/postgresql-11.list'
sudo apt update
sudo apt install postgresql-11

The following additional packages will be installed:
  libllvm6.0 libpq5 libsensors4 pgdg-keyring postgresql-client-11 postgresql-client-common postgresql-common sysstat
Suggested packages:
  lm-sensors locales-all postgresql-doc-11 libjson-perl isag
The following NEW packages will be installed:
  libllvm6.0 libpq5 libsensors4 pgdg-keyring postgresql-11 postgresql-client-11 postgresql-client-common postgresql-common sysstat
0 upgraded, 9 newly installed, 0 to remove and 1 not upgraded.
Need to get 30.7 MB of archives.
After this operation, 115 MB of additional disk space will be used.
Do you want to continue? [Y/n] y

Upgrade auf PostgreSQL 11 von PostgreSQL 10

Bei einem Upgrade muss die neue Version (wie oben beschrieben) installiert werden. Danach kann überprüft werden, ob beide aktiv sind. Vorher aber das Backup nicht vergessen.

pg_dumpall > Sicherung
pg_lsclusters

Danach wird das neue Cluster vorerst angehalten damit das alte auf das neue migriert werden kann.

sudo pg_dropcluster 11 main --stop
sudo pg_upgradecluster 10 main

  Stopping old cluster...
  Disabling connections to the old cluster during upgrade...
  Restarting old cluster with restricted connections...
  Creating new PostgreSQL cluster 11/main ...
  /usr/lib/postgresql/11/bin/initdb -D /var/lib/postgresql/11/main --auth-local peer --auth-host md5 
  --encoding UTF8 --lc-collate en_US.UTF-8 --lc-ctype en_US.UTF-8
  The files belonging to this database system will be owned by user "postgres".
  This user must also own the server process.

  The database cluster will be initialized with locale "en_US.UTF-8".
  The default text search configuration will be set to "english".

  Data page checksums are disabled.

  fixing permissions on existing directory /var/lib/postgresql/11/main ... ok
  creating subdirectories ... ok
  selecting default max_connections ... 100
  selecting default shared_buffers ... 128MB
  selecting dynamic shared memory implementation ... posix
  creating configuration files ... ok
  running bootstrap script ... ok
  performing post-bootstrap initialization ... ok
  syncing data to disk ... ok

pg_lscluster

Im nächsten Schritt kann die korrekte Funktion des Systems und der Datenbanken überprüft werden.

Ist alles in Ordnung kann das alte Cluster entfernt werden.

sudo pg_dropcluster 10 main

 

Jitsi Videobridge und Jitsi Meet - eigene Web und Videokonferenzen via Browser

Vor ca.3 Jahren hatte ich bereits über Jitsi Meet berichtet. Mittlerweile ist das Thema WebRTC und Web Videokonferenzen ein alter Hut und es wird nicht mehr jeden Tag eine neue Sau durchs Dorf getrieben.

jitsi-meet-2018

Jitsi Meet

Jitsi wurde inzwischen von Atlassian übernommen und die Entwicklung an der Webkonferenzlösung still und heimlich weitergeführt.

Es wurden stets stabile Releases der Software veröffentlicht, diese waren bisher allerdings etwas schwerer zu erkennen, die hat sich nun geändert.

Die aktuellste stabile Version trägt die Nummer 2988 und der aktuelle Changelog kann auf Github eingesehen werden.

Installation unter Ubuntu

Zunächst möchte ich kurz zeigen, wie sich die neueste Version installieren lässt, dieser Vorgang wurde im Vergleich zu früher stark vereinfacht.

Ausgangsystem ist ein Ubuntu 16.04 (ja ich weiß 18.04 ist schon verfügbar)

wget -qO - https://download.jitsi.org/jitsi-key.gpg.key | sudo apt-key add 
sudo sh -c "echo 'deb https://download.jitsi.org stable/' > /etc/apt/sources.list.d/jitsi-stable.list"

sudo apt-get -y update
sudo apt-get -y install jitsi-meet

Ein Lets Encrypt Zertifikat kann nun ebenfalls automatisch erstellt werden:

/usr/share/jitsi-meet/scripts/install-letsencrypt-cert.sh

Aufrufen lässt sich die fertige Installation über https://meineServerAdresse.de

Die Software selbst hat einige Schritte nach vorne gemacht, nicht nur das Design ist besser, auch die Stabilität wurde um einiges verbessert. Neben dem eingebauten Chat lassen sich YouTube Videos oder der eigene Bildschirm teilen. Auch verschiedene Sprachen werden nun unterstützt.

jitsi-meet-2018Für Tastaturfreunde wurden ausreichend Kürzel implementiert.

jitsi-tastaturbefehle

Fazit

Wer einen eigenen Videokonferenzserver betreiben möchte, ist mit Jitsi Meet sicherlich gut bedient, die Software bietet genügend Funktionen für einen Jour fixe. 

Die schnelle und einfache Installation spricht für sich, sowie die Unterstützung für Lets Encrypt.

Falls kein Server zur Installation vorhanden ist, kann die offizielle Variante unter meet.jit.si verwendet werden.

Seit letztem Jahr wird zusätzlich auf Mobile Clients gesetzt, für Android oder für iOS stehen stabile Veröffentlichungen zur Verfügung.

Auch im Hinblick auf unsichere Programme, wie Skype und Co, bietet Jitsi Meet mit ZRTP und OTR Verschlüsselung die richtige und sichere Alternative für Videotelefonie an.

https://github.com/jitsi/jitsi-meet