Firebird 3.0 unter Linux Mint 19.2 Cinnamon 4.2.4

Forum für neue Firebird-Anwender.

Moderator: thorben.braun

Gerd
Beiträge: 234
Registriert: Di 1. Okt 2019, 17:13

martin.koeditz hat geschrieben: So 20. Okt 2019, 21:53 ...
OK, in /tmp/firebird liegt keine DB-Datei. Wo kommt dieser Pfad dann her? ...
Hallo Martin.

Ich habe es getan.
  • Timeshift ausgeführt. Dies beinhaltet u. a. auch, dass das System neu gestartet wird.
  • Das Verzeichnis /tmp gecheckt. Ergebnis: das Vereichnis "firebird" gibt es nicht mehr.
  • Firebird 3.0 über die Anwendungsverwaltung installiert. Problemfrei.
  • Das Verzeichnis /tmp gecheckt. Ergebnis: das Verzeichnis "firebird" gibt es wieder.
  • Das Verzeichnis /temp mit dem Kontextmenübefehl "Als Systemverwalter öffnen" geöffnet.
Kurze Freude, denn es beinhaltet nun diese drei Dateien:
-> fb12_trace (4,2 kB)
-> fb_init (0 Bytes)
-> fb_trace_33OAUT (0 Bytes)
Verzeichnis root tmp_firebird_.png
Verzeichnis root tmp_firebird_.png (104.81 KiB) 18168 mal betrachtet
Nach etwa 10 - 15 Sekunden werden die Dateien
-> fb12_trace
-> fb_trace_33OAUT
automatisch (refresh) entfernt. :?

Zurück bleibt die Datei:
-> fb_init (0 Bytes)

Ich verstehe nicht, warum Firebird 3.0 auf ein temporäres Verzeichnis zugreift.
Und ich verstehe auch nicht warum zum Öffnen eines (dieses) temp-Verzeichnisses "Erhöhte Berechtigungen" erforderlich sind.
Ich behaupte mal, dass bei Firebird 3.0 unter Windows so ein Ablauf nicht erfolgt.

Wir müssen uns nicht wundern, dass Firebird in der Anwendungsverwaltung von Linux Mint bisher nicht einen einzigen Kommentar hat.
(Ich finde das bedauerlich, da ich Linux Mint 19 Cinnamon-Desktop als das am schönsten aussehende Betriebssystem halte. Und es soll bekanntlich vor Weihnachten noch deutlich schöner rüber kommen.)


Viele Grüsse
Gerd
Linux Mint 21.3 Virginia Cinnamon 6.0.4
Firebird 5.0.0., Embedded, ISQL: LI-V5.0.0.1306
Lazarus 3.0.0 - FPC 3.2.2
Benutzeravatar
martin.koeditz
Beiträge: 443
Registriert: Sa 31. Mär 2018, 14:35

Also, der Server versucht, aus welchem Grunde auch immer, die lock-Dateien in /tmp/firebird abzulegen. Jetzt gibt es eigentlich nur zwei Optionen.

Ich kann leider nicht sehen, wer Besitzer (Benutzer und Gruppe) von /tmp/firebird ist. Vermutlich kannst deinen Benutzer zur Firebird-Gruppe des Dateisystems hinzufügen. Danach solltest du auf die tmp-Dateien zugreifen können.

Alternativ kannst du wohl auch das Verzeichnis mittelst

Code: Alles auswählen

rm /tmp/firebird -r
löschen und dann nur mit deinem Benutzer hierauf zugreifen. Dann werden wohl die Lock-Dateien dem jeweiligen Benutzer zugewiesen.

Im schlimmsten Falle kann das Verzeichnis für jedermann beschreibbar gemacht werden:

Code: Alles auswählen

sudo chmod 777 -R /tmp/firebird

Die erste Option ist aber m.E. die beste.

Ich habe bei mir unter OpenSuse das gleiche Verzeichnis. Da ich aber immer über Serverinstanzen arbeite, bin ich noch nicht auf das Problem gestoßen. Ich dachte, das Verzeichnis sei irgendwo in der firebird.conf anpassbar. Dies scheint unter Linux aber hart codiert zu sein. Damit ist dies kein Mint-spezifisches Problem. :D

Interessant ist auch ein Beitrag in der Mailing-List, wo die oben beschriebenen Punkte ebenfalls erläutert werden:
https://www.mail-archive.com/firebird-s ... 18219.html

Gruß
Martin
Martin Köditz
it & synergy GmbH
Gerd
Beiträge: 234
Registriert: Di 1. Okt 2019, 17:13

Hallo Martin.

Ich gehe davon aus, dass das Problem insbesondere durch Deinen letzten Beitrag geklärt werden kann und bei mir hier geklärt wurde. :)

Deine favorisierte Lösung, das Löschen des /temp-Verzeichnisses funktioniert so leider nicht. Auch nicht als root.
Ich erhalte eine Meldung, wie in der Abbildung "sudo rm _tmp_firebird.png" ersichtlich:
sudo rm _tmp_firebird.png
sudo rm _tmp_firebird.png (25.96 KiB) 18155 mal betrachtet
Gebracht hat es dann Dein zweiter Code - die Rechtezuweisung.
Möchte ich nach dessen Ausführung als 'normaler' Linux Mint User mit dem ISQL Tool bspw. eine Firebird Datenbank Test.fdb erzeugen, dann funktioniert das wie erwartet. Soll heissen, die Meldung

Statement failed, SQLSTATE = 08006
Can not access lock files directory /tmp/firebird


kommt nicht mehr. Die Datenbank wird erzeugt. :D
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
gerd@gerd-MS-7641:~$ isql-fb
Use CONNECT or CREATE DATABASE to specify a database
SQL> CREATE DATABASE '/home/gerd/Firebird/Test.fdb'
CON> USER 'SYSDBA' PASSWORD 'masterkey';
SQL>
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Bliebe nur noch interessanterweise übrig, wie das eigentlich mit dem Hinzufügen Firebird zu einer Gruppe hätte umgesetzt werden können.

Ich werde hier noch ausgiebig Firebird 3.0 unter Linux Mint 19.2 Cinnamon testen.
Dann gibt es den zusammenfassenden Abschluss dieses Themas. (Das kann etwas dauern.)
Bis dahin besten Dank an: @Martin und @bfuerchau

Viele Grüsse
Gerd
Linux Mint 21.3 Virginia Cinnamon 6.0.4
Firebird 5.0.0., Embedded, ISQL: LI-V5.0.0.1306
Lazarus 3.0.0 - FPC 3.2.2
Benutzeravatar
martin.koeditz
Beiträge: 443
Registriert: Sa 31. Mär 2018, 14:35

Hi Gerd,

ich habe mich falsch ausgedrückt. Meine präferierte Variante ist das Hinzufügen des Benutzers gerd zur Gruppe firebird:

Code: Alles auswählen

sudo usermod -aG firebird gerd
Auch mein Löschbefehl war unvollständig. Da /tmp/firebird ein Verzeichnis ist, muss noch der Schalter -r verwendet werden. Habe ich in meinem Post korrigiert. Also:

Code: Alles auswählen

sudo rm /tmp/firebird -r
Gruß
Martin
Martin Köditz
it & synergy GmbH
Gerd
Beiträge: 234
Registriert: Di 1. Okt 2019, 17:13

Hallo Martin.

Da eine ähnliche Meldung (nach System-Neustart) wieder kam, habe ich
  • mittels Dateiexplorer Nemo und root-Rechten das Verzeichnis /tmp/firebird gelöscht.
  • mich als Linux Mint User mit der Firebird Datenbank Test.fdb verbunden. OK
  • Rechner-Neustart.
  • Das Verzeichnis /tmp/firebird gecheckt. Erwartungsgemäss nicht mehr da. OK
  • Mich als 'normaler' Linux Mint User mit der Firebird Datenbank Test.fdb verbunden. OK

Ich werde (hoffentlich noch heute) erneut Timeshift ausführen.
Firebird 3.0 über die Anwendungsverwaltung erneut (3. Mal) installieren.
Dann das mit der "Gruppe" übers Terminal umsetzen. (Es ist ja immerhin Deine favorisierte Lösung.)

DANKE!

Viele Grüsse
Gerd
Linux Mint 21.3 Virginia Cinnamon 6.0.4
Firebird 5.0.0., Embedded, ISQL: LI-V5.0.0.1306
Lazarus 3.0.0 - FPC 3.2.2
Gerd
Beiträge: 234
Registriert: Di 1. Okt 2019, 17:13

Gerd hat geschrieben: Mo 21. Okt 2019, 15:51 ...
Ich werde (hoffentlich noch heute) erneut Timeshift ausführen.
Firebird 3.0 über die Anwendungsverwaltung erneut (3. Mal) installieren.
Dann das mit der "Gruppe" übers Terminal umsetzen. (Es ist ja immerhin Deine favorisierte Lösung. ...
Hallo in die Runde.

So. Habe Timeshift ausgeführt. OK
Firebird installiert. OK
Dann über das Terminal eingegeben:

Code: Alles auswählen

sudo usermod -aG firebird gerd
Offenbar OK.

Danach wurde versucht als 'normaler' Linux Mint User eine erste Firebird Datenbank Test.fdb anzulegen.
Es kommt wieder die obige Meldung. :cry: Und es wird hierbei keine Datenbank erzeugt.

Ich werde nun wieder das Verzeichnis /tmp/firebird mit root-Rechten und unter Verwendung von Nemo löschen.
Mal schauen, ob das tatsächlich dauerhaft funktioniert - nicht das da wieder erneut ein Verzeichnis erzeugt wird.


Viele Grüsse
Gerd
Linux Mint 21.3 Virginia Cinnamon 6.0.4
Firebird 5.0.0., Embedded, ISQL: LI-V5.0.0.1306
Lazarus 3.0.0 - FPC 3.2.2
Gerd
Beiträge: 234
Registriert: Di 1. Okt 2019, 17:13

Gerd hat geschrieben: Mo 21. Okt 2019, 17:33
Gerd hat geschrieben: Mo 21. Okt 2019, 15:51 ...
Ich werde (hoffentlich noch heute) erneut Timeshift ausführen.
Firebird 3.0 über die Anwendungsverwaltung erneut (3. Mal) installieren.
Dann das mit der "Gruppe" übers Terminal umsetzen. (Es ist ja immerhin Deine favorisierte Lösung. ...
Hallo in die Runde.

So. Habe Timeshift ausgeführt. OK
Firebird installiert. OK
Dann über das Terminal eingegeben:

Code: Alles auswählen

sudo usermod -aG firebird gerd
Offenbar OK.

Danach wurde versucht als 'normaler' Linux Mint User eine erste Firebird Datenbank Test.fdb anzulegen.
Es kommt wieder die obige Meldung. :cry: Und es wird hierbei keine Datenbank erzeugt.

Ich werde nun wieder das Verzeichnis /tmp/firebird mit root-Rechten und unter Verwendung von Nemo löschen.
Mal schauen, ob das tatsächlich dauerhaft funktioniert - nicht das da wieder erneut ein Verzeichnis erzeugt wird.


Viele Grüsse
Gerd

Nachtrag

Mir kam noch die Idee den Rechner neu zu starten.
Danach habe ich erneut versucht als 'normaler' Linux Mint User eine Firebird Datenbank Test.fdb anzulegen. Dieses Mal war die Aktion von Erfolg gekrönt. Es kam keine Meldung. Die Datenbank wurde erzeugt.

Also nach

Code: Alles auswählen

sudo usermod -aG firebird gerd
Rechner-Neustart!


Ich werde nun die nächste Zeit, wie schon oben angekündigt, Firebird 3.0 unter Linux Mint 19.2 Cinnamon testen und mich wieder melden.

Danke nochmals. :)

Viele Grüsse
Gerd
Linux Mint 21.3 Virginia Cinnamon 6.0.4
Firebird 5.0.0., Embedded, ISQL: LI-V5.0.0.1306
Lazarus 3.0.0 - FPC 3.2.2
bfuerchau
Beiträge: 485
Registriert: Mo 7. Mai 2018, 18:09
Kontaktdaten:

Welches Temp-Verzeichnis verwendet werden soll (ins besonders für Sort) kannst du in der Firebird.Config festlegen.
Ich hatte in Windows mal den Fall, dass große Abfragen nicht mehr funktionierten, weil die Systemplatte voll war. Umbiegen auf das DB-Verzeichnis und schon gings wieder.
Benutzeravatar
martin.koeditz
Beiträge: 443
Registriert: Sa 31. Mär 2018, 14:35

Rechner-Neustart? Ist ja spannend... :)

@bfeuerchau
Welcher Parameter in der Config ist das? Ich habe nichts hierzu gefunden.

Dank und Gruß
Martin
Martin Köditz
it & synergy GmbH
bfuerchau
Beiträge: 485
Registriert: Mo 7. Mai 2018, 18:09
Kontaktdaten:

Zumindest unter Windows, aber unter Linux gibts a auch eine TEMP-Variable:

# ----------------------------
# Temporary directories
#
# Provide ';'-separated trees list, where temporary files are stored.
# Relative paths are treated relative to RootDirectory entry
# (see above). Default value is determined using FIREBIRD_TMP,
# TEMP or TMP environment options. Once the first specified
# directory has no available space, the engine will switch to the
# next one, and so on.
#
# E.g.:
# TempDirectories = c:\temp
# or
# TempDirectories = c:\temp;d:\temp
#
# Type: string (special format)
#
#TempDirectories =

Alternativ kann man in Unix ja für den jeweiligen Prozess mit einer eigenen TEMP-Umgebung starten.
Antworten