frank
Goto Top

Ubuntu: RedisInsight aus dem Source Code selbst bauen

article-picture
Hallo User,

da ich jetzt mehr als 4 Stunden damit verbracht habe, den GUI Client RedisInsight für unsere Redis-Datenbank direkt aus dem Source Code zu erstellen, schreibe ich es mir hier lieber auf.


back-to-topRedis und RedisInsight


Redis ist eine In-Memory-Datenbank und einen Key-Value-Store. Damit realisieren wir auf Administrator den Cache und Teile der Suche. Redis ist sehr schnell, da alle Datenbankabfragen direkt im Speicher (RAM) erledigt werden. Ich persönlich kenne keine Datenbank, die schneller ist.

Redis kann man unter Ubuntu recht einfach installieren. Um die aktuellste Version zu bekommen sollten man die offiziellen Redis.io-Pakete benutzen:

curl -fsSL https://packages.redis.io/gpg | sudo gpg --dearmor -o /usr/share/keyrings/redis-archive-keyring.gpg
echo "deb [signed-by=/usr/share/keyrings/redis-archive-keyring.gpg] https://packages.redis.io/deb $(lsb_release -cs) main" | sudo tee /etc/apt/sources.list.d/redis.list  
sudo apt-get update
sudo apt-get install redis

Man findet eine Kurzanleitung zum Erstellen von RedisInsight auf der offiziellen Redis Seite. Diese verheimlicht aber ein paar Dinge bzw. erwähnt sie einfach nicht. Letztendlich verständlich, da die Firma hinter Redis die Enterprise-Edition verkaufen will. Dort ist RedisInsight mit dabei. Generell kann man RedisInsight seit einiger Zeit auch kostenlos von der Redis-Seite laden, dazu muss man aber sehr viele Daten wie E-Mail, Adresse, Telefonnummer etc. angeben und bekommt die App auch nur mit gültiger E-Mail als Download-Link. Zusätzlich bekommt man danach viele Anfragen von Redis per Mail oder Telefon. Darauf habe ich keine Lust mehr und baue mir der Client für die Redis Datenbank nun selbst. Hier die nötigen Schritte unter Linux Ubuntu 22.04 dazu (sollte so auch unter Debian funktionieren):

back-to-topVorbereitung


  • Getestet unter Ubuntu 22.04
  • Alle Befehle werden unter der Linux-Bash und als User "frank" und nicht direkt als root durchgeführt! Der Hostname des System lautet: "nexus". Wenn "root" gebraucht wird, benutze ich "sudo" dafür.

  • Alle Tools und Programme, die unter Ubuntu 22.04 zur Entwicklung benötigt, müssen installiert werden:

sudo apt update 
sudo apt install build-essential g++ make rpm libva git

  • Node installieren (JavaScript-Laufzeitumgebung) >16 <18

Tipp: Alles was zu node gehört wird unter dem Home-Verzeichnis ~.nvm gespeichert. Sollte etwas nicht funktionieren kann dieses Verzeichnis gelöscht werden und man fängt von vorne an.

curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.1/install.sh | bash

Als Ausgabe erscheint ein:

....
=> nvm source string already in /home/frank/.bashrc
=> bash_completion source string already in /home/frank/.bashrc
=> Close and reopen your terminal to start using nvm or run the following to use it now:

export NVM_DIR="$HOME/.nvm"  
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh"  # This loads nvm  
[ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion"  # This loads nvm bash_completion  

Jetzt :

source ~/.bashrc

ausführen oder das Terminal einmal schließen und wieder neu öffnen.

Nun testen, ob der Befehl "nvm" im Terminal aufgerufen werden kann (einfach nvm eintippen und Return drücken). Es sollte eine Hilfe zu "nvm" erscheinen. Wenn nicht bitte das Verzeichnis "~.nvm" im Home-Ordner löschen und den Schritt "Node installieren" wiederholen.

Welche Node Version? Mit:

nvm list-remote

bekommt ihr eine Liste aller verfügbaren Node Versionen.

Wichtig: Mit der neuesten Node Version 18.10.0 (Stand Oktober 2022) funktioniert der BUILD der RedisInsight Version 2.10.0 nicht! Erst mit der Node LTS-Version Gallium (v16.17.1) funktioniert es ohne Probleme. Das kann sich natürlich später mit anderen Releases ändern.

Wir installieren daher die LTS Version:

nvm install lts/gallium

Nach erfolgreicher Installation können wir mit:

node -v

prüfen, ob es funktioniert hat und welche Version installiert wurde (bei mir v16.17.1).

  • Yarn installieren: >=1.21

npm install --global yarn

Mit "yarn --version" kann man sich die aktuelle Version anzeigen lassen (bei mir 1.22.19).

Es gibt bereits neuere yarn Versionen (3.x), aber ich beschränke mich hier auf die 1.x Version, die mit "Node v16.17" einwandfrei funktioniert. Neuere Versionen habe ich noch nicht getestet. Mehr zum Thema "Yarn" findet ihr hier.

Nun können wir mit dem Bauen von RedisInsight anfangen.

back-to-topRedisInsight Source Code herunter laden


Ich lege dazu unter meinem Home-Verzeichnis das Verzeichnis "~/redis" an.

Zum Download gibt es zwei Möglichkeiten: 1). Per "git" 2). Direkt von der RedisInsight Seite als "tar.gz" Download.

1) git

mkdir ~/redis
cd redis
git clone https://github.com/RedisInsight/RedisInsight.git
cd RedisInsight

2) Download: Das neueste Release auf der Git-Seite auswählen und auf den Download klicken:
https://github.com/RedisInsight/RedisInsight/archive/refs/tags/2.10.0.ta ...

Den Download in das Verzeichnis ~/redis kopieren und mit

tar xfvz RedisInsight-2.10.0.tar.gz
cd RedisInsight-2.10.0

entpacken und ins Verzeichnis wechseln.

Mir persönlich gefällt die "git"-Variante besser, daher mache ich mit dieser weiter face-smile

back-to-topRedisInsight bauen


Im entpackten oder mit Git erzeugten Verzeichnis wird nun yarn aufgerufen, um die Abhängigkeiten zu laden.

yarn install

Das sollte jetzt so aussehen:

frank@nexus:~/redis/RedisInsight$ yarn install
yarn install v1.22.19
[1/4] Resolving packages...
[2/4] Fetching packages...
[3/4] Linking dependencies...
.....

Sollte "yarn" hier einen Fehler anzeigen, habt ihr entweder das "source ~/.bashrc" nicht ausgeführt, oder alternativ das Terminal nicht neu gestartet. Einfach nochmal das Terminal neu starten und erneut das "yarn" im "redis/RedisInsight" Verzeichnis ausführen.

Funktioniert "yarn install" wurden alle Abhängigkeiten geladen und es muss ein "Done" erscheinen. Es erscheinen auch viele Fehler bzw. "Warning" in der Ausgabe. Diese kann man einfach ignorieren. Das Team von Redis muss da in Zukunft noch viel Hand anlegen, bis das ein sauberer Code wird.

Als nächstes wird:

yarn --cwd redisinsight/api/

aufgerufen. Auch hier erscheinen einige "Warning" aber zum Schluss sollte da ein "Done" stehen.

Wir starten das Linking:

yarn build:statics

Dieser Schritt dauert ein wenig und auch hier erscheinen wieder viele "Warning" oder "DEPRECATION WARNING" Hinweise (und mehr). Solange zum Schluss ein "Done" steht kann man alle Fehlermeldungen ignorieren. Die sind nur für die Entwickler relevant, es sei denn, dass Script bricht mit einem "error" ab. Unter "Node v18.x" ist mir das immer passiert, mit "Node v16.x" läuft es durch.

Jetzt bauen wir die Installationsdateien:

yarn package:prod

Dieser Vorgang dauert am Längsten (bitte habt Geduld und nicht das Script vorzeitig abbrechen, es geht weiter, dauert halt nur lange). Auch hier erscheine wieder einige "Warning" und "Conflicting" Hinweise. Solange das Script nicht abbricht, kann man diese ignorieren. Zum Schluss sollte wieder ein "Done" erscheinen.

Das war es! Die Installations-Dateien findet ihr nun im Verzeichnis /release:


frank@nexus:~/redis/RedisInsight/release$ dir
.rw-rw-r--  911 frank  7 Okt 14:49 builder-debug.yml
.rw-rw-r-- 1,8k frank  7 Okt 14:46 builder-effective-config.yaml
.rw-rw-r--  397 frank  7 Okt 14:49 latest-linux.yml
drwxrwxr-x    - frank  7 Okt 14:46 linux-unpacked
.rw-rw-r--  72M frank  7 Okt 14:48 RedisInsight-v2-linux-amd64.deb
.rwxr-xr-x 103M frank  7 Okt 14:47 RedisInsight-v2-linux-x86_64.AppImage
.rw-rw-r--  72M frank  7 Okt 14:49 RedisInsight-v2-linux-x86_64.rpm

Dort gibt es eine .deb (Ubuntu, Debian Systeme) und eine .rpm (Fedora, Red Hat, etc.) Variante.

Die .deb Datei kann nun per "Software-Installation" über den Dateimanager aufgerufen werden.

bildschirmfoto vom 2022-10-07 13-00-01

Hier auf "Installation" klicken und die "Software-Installation" installiert den selbst gebauten RedisInsight Client auf das eigene System.

bildschirmfoto vom 2022-10-07 12-58-19

Jetzt könnt ihr die "RedisInsight" App ganz normal ausführen.

bildschirmfoto vom 2022-10-07 14-56-05

back-to-topVorteil der "git"-Variante:


Sollte es ein Update von RedisInsight geben, könnt ihr den neuesten Source Code per

~/redis/RedisInsight$ git fetch https://github.com/RedisInsight/RedisInsight.git

aktualisieren und dann den Vorgang mit "yarn install" etc. wieder neu starten.


Über Feedback oder Verbesserungen freue ich mich jederzeit. Wenn Euch die Anleitung gefällt klickt bitte auf das "Herz", als kleines Dankeschön face-smile

Gruß
Frank

Content-Key: 4184763038

Url: https://administrator.de/contentid/4184763038

Printed on: June 23, 2024 at 20:06 o'clock