Ubuntu: RedisInsight aus dem Source Code selbst bauen
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.
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:
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):
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.
Als Ausgabe erscheint ein:
Jetzt :
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:
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:
Nach erfolgreicher Installation können wir mit:
prüfen, ob es funktioniert hat und welche Version installiert wurde (bei mir v16.17.1).
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.
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
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
entpacken und ins Verzeichnis wechseln.
Mir persönlich gefällt die "git"-Variante besser, daher mache ich mit dieser weiter
Im entpackten oder mit Git erzeugten Verzeichnis wird nun yarn aufgerufen, um die Abhängigkeiten zu laden.
Das sollte jetzt so aussehen:
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:
aufgerufen. Auch hier erscheinen einige "Warning" aber zum Schluss sollte da ein "Done" stehen.
Wir starten das Linking:
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:
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:
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.
Hier auf "Installation" klicken und die "Software-Installation" installiert den selbst gebauten RedisInsight Client auf das eigene System.
Jetzt könnt ihr die "RedisInsight" App ganz normal ausführen.
Sollte es ein Update von RedisInsight geben, könnt ihr den neuesten Source Code per
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
Gruß
Frank
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.
Inhaltsverzeichnis
Redis 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):
Vorbereitung
- 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.
RedisInsight 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
RedisInsight 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.
Hier auf "Installation" klicken und die "Software-Installation" installiert den selbst gebauten RedisInsight Client auf das eigene System.
Jetzt könnt ihr die "RedisInsight" App ganz normal ausführen.
Vorteil 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
Gruß
Frank
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 4184763038
Url: https://administrator.de/tutorial/ubuntu-redisinsight-aus-dem-source-code-selbst-bauen-4184763038.html
Ausgedruckt am: 24.12.2024 um 18:12 Uhr