# Berkeley DB

## Necoro

Hmm ... von der BerkeleyDB gibt es ja verschiedenste Varianten im System ... - bei vielen Paketen ist der Support aber optional... habe daher den Support einfach mal abgeschaltet...

Nun zu meiner Frage: Macht die BerkeleyDB überhaupt noch Sinn auf dem Rechner? - Hat irgendein Programm Nachteile durch ihr Nichtvorhandensein?

----------

## Klaus Meier

Diese Frage bewegt mich auch schon einige Zeit. Es sieht bei mir so aus, dass die BerkeleyDB bei mir auch dann installiert wird, wenn das entsprechende USE-Flag nicht gesetzt ist. Deshalb habe ich es einfach gesetzt. Das ist ja auch die Vorgabe aus dem Profil.

----------

## Necoro

Also bei mir ist das einzige Programm, was "db" benötigt (unabhängig vom Useflag): rpm ...

Durch das Weglassen des Flags konnte ich immerhin die Anzahl der installierten db-Versionen auf 2 reduzieren ^^ (aus irgendeinem Grund braucht db-3 ein installiertes db-1. :Cool: 

----------

## ixo

Soweit ich mich erinnern kann, war die Berkeley DB ursprünglich 'mal ein besseres dbm (oder genauer ndbm). Dann sind zusätzliche Funktionaliäten dazugekommen (z.B. Locking für gleichzeitigen Zugriff mehrerer Programme auf ein db-File).

Aufgrund unterschiedlicher Funktionalität gibt es auch unterschiedliche Versionen.

Wenn man bei einem Programm die Wahl hat (z.B. in perl), ob man die Berkeley DB (alternativ) einbinden will, ist das idR. keine schlechte Idee, da die Performance meist deutlich besser ist, als die der anderen dbm Varianten.

Gruss ixo.

----------

## Klaus Meier

Bei mir sind es openoffice und evolution-data-server, welche db-4.5.20 benutzen, ohne Flag. Und es ist auch die einzige Version von db, die auf meinem Rechner ist.

----------

## l3u

Nach meinem letzten emerge --depclean und dem darauffolgenden revdep-rebuild habe ich nur noch eine BerkeleyDB-Version auf meinem Rechner. Aber abgesehen davon, daß ich die BerkeleyDB teils auch in meinen eigenen Programmen nutze, glaube ich nicht, daß die 4,6 MB meinen Rechner in den Abgrund reißen würden, wenn ich sie nicht brauchen würde ...

----------

## Necoro

 *ixo wrote:*   

> Wenn man bei einem Programm die Wahl hat (z.B. in perl), ob man die Berkeley DB (alternativ) einbinden will, ist das idR. keine schlechte Idee, da die Performance meist deutlich besser ist, als die der anderen dbm Varianten.

 

Hmm - ich habe aber kein Programm, welches eine db benutzt ... insofern trifft dein Hinweis hier nicht wirklich zu  :Smile: 

----------

## musv

Bei mir ist berkdb in den USE-Flags deaktivert (-berkdb).

```

eix -e db

[U] sys-libs/db

     Available versions:  

        (1)     1.85-r1 1.85-r2 1.85-r3

        (3)     3.2.9-r10 3.2.9-r11

        (4.2)   4.2.52_p2-r1 4.2.52_p4-r2

        (4.3)   4.3.29-r2

        (4.4)   (~)4.4.20_p4

        (4.5)   (~)4.5.20_p2

     Installed versions:  1.85-r3(1)(03:22:25 04.03.2007) 3.2.9-r11(3)(04:23:15 04.03.2007)(doc -elibc_FreeBSD java -test)

                          4.3.29-r2(4.3)(10:51:17 05.03.2007)(-bootstrap doc -elibc_FreeBSD java -nocxx tcl -test)

```

Installiert sind: 1.85-r3, 3.2.9-r11 und 4.3.29-r2. 

Auf meinem Notebook ist sogar noch zusätzlich die 4.5.20-p2 installiert, da ich mal ein OpenOffice-Update gemacht hatte. Dabei wurde auch die 4.5-er Version von db installiert. Beim emerge --depclean wird dann (wenn die 4.5-er installiert ist) die 4.3.29-r2 deinstalliert, wobei dann aber wieder subversion, kdesdk-kioslaves, apache und einige andere Apps meckern. 

```

 equery depends db

[ Searching for packages depending on db... ]

app-arch/rpm-4.4.6-r4 (=sys-libs/db-3.2*)

app-office/openoffice-2.1.0 (>=sys-libs/db-4.3)

dev-lang/perl-5.8.8-r2 (berkdb? sys-libs/db)

dev-lang/php-5.2.1-r3 (berkdb? =sys-libs/db-4*)

dev-lang/python-2.4.4 (!build & berkdb? >=sys-libs/db-3.1)

dev-libs/apr-util-0.9.12 (berkdb? =sys-libs/db-4*)

dev-libs/apr-util-1.2.8 (berkdb? =sys-libs/db-4*)

dev-util/kdevelop-3.4.0-r2 (>=sys-libs/db-4.1)

dev-util/subversion-1.4.3 (berkdb? =sys-libs/db-4*)

net-libs/libetpan-0.49 (berkdb? sys-libs/db)

sys-devel/libperl-5.8.8-r1 (berkdb? sys-libs/db)

sys-libs/db-3.2.9-r11 (=sys-libs/db-1.85*)

sys-libs/gdbm-1.8.3-r3 (berkdb? sys-libs/db)

```

Scheint also doch irgendwie von vielen Paketen verwendet zu werden.

----------

## Klaus Meier

 *Libby wrote:*   

> Nach meinem letzten emerge --depclean und dem darauffolgenden revdep-rebuild habe ich nur noch eine BerkeleyDB-Version auf meinem Rechner. Aber abgesehen davon, daß ich die BerkeleyDB teils auch in meinen eigenen Programmen nutze, glaube ich nicht, daß die 4,6 MB meinen Rechner in den Abgrund reißen würden, wenn ich sie nicht brauchen würde ...

 

Es geht nicht um die 4,6 MB, drauf ist es ja sowieso, es geht darum, was besser ist.

----------

## l3u

Wie, was besser ist?

 *Quote:*   

> [I] sys-libs/db
> 
>      Available versions:
> 
>         (1)     1.85-r1 1.85-r2 1.85-r3
> ...

 

Man hat die Auswahl zwischen BerkeleyDB und ... BerkeleyDB, oder?! Und wie gesagt: ist nur eine Version drauf!

----------

## Klaus Meier

 *Libby wrote:*   

> Wie, was besser ist?
> 
>  *Quote:*   [I] sys-libs/db
> 
>      Available versions:
> ...

 

Nö, man kann das USE-Flag berkdb setzen oder nicht. Und wenn nicht, dann wird die gdbm benutzt. Oder irgendeine andere. Das war die Frage, ob das Setzen dieses Flags einen Vorteil bringt. Siehe etwas älteren Thread wo es genau darum ging, dass man alles, was auf der Platte ist, per Flag aktivieren sollte.

----------

## l3u

Kann man? Wo?

 *Quote:*   

> # emerge -pv db
> 
> These are the packages that would be merged, in order:
> 
> Calculating dependencies... done!
> ...

 

Evtl. in irgendwelchen anderen Anwendungen, wenn's drum geht, ob oder ob nicht man BerkeleyDB-Unterstützung haben will ...

----------

## Klaus Meier

 *Libby wrote:*   

> Kann man? Wo?
> 
>  *Quote:*   # emerge -pv db
> 
> These are the packages that would be merged, in order:
> ...

 

Genau, du hast es erkannt, grins... Also, wenn ich das Flag berkdb rausnehme und ein emerge -upDNv world mache, bekomme ich folgendes:

```
These are the packages that would be merged, in order:

Calculating world dependencies... done!

[ebuild   R   ] sys-libs/gdbm-1.8.3-r3  USE="-berkdb*" 0 kB 

[ebuild   R   ] dev-lang/python-2.4.4  USE="gdbm ncurses readline ssl -berkdb* -bootstrap -build -doc -ipv6 -nocxx -tk -ucs2" 0 kB 

[ebuild   R   ] sys-devel/libperl-5.8.8-r1  USE="gdbm -berkdb* -debug -ithreads" 0 kB 

[ebuild   R   ] dev-lang/perl-5.8.8-r2  USE="gdbm -berkdb* -build -debug -doc -ithreads -perlsuid" 0 kB 

[ebuild   R   ] gnome-extra/libgda-1.2.4  USE="-berkdb* -debug -doc -firebird -freetds -ldap -mdb -mysql -oci8 -odbc -postgres -sqlite3 -xbase" 0 kB 

[ebuild   R   ] mail-filter/bogofilter-1.1.5  USE="-berkdb* -gsl -sqlite" 0 kB 
```

Und darum geht es, nutzt oder schadet es mir bei diesen Anwendungen.

----------

## l3u

Und wo genau ist jetzt euer Problem? Wenn ich PHP ohne BerkeleyDB-Unterstützung kompiliere, dann kann ich halt in einem PHP-Script keine BerkeleyDB benutzen (dba_open & Co.) ... entsprechendes für die anderen Programme ... und was genau ist jetzt zu klären?

----------

## Necoro

 *Libby wrote:*   

> Und wo genau ist jetzt euer Problem? Wenn ich PHP ohne BerkeleyDB-Unterstützung kompiliere, dann kann ich halt in einem PHP-Script keine BerkeleyDB benutzen (dba_open & Co.) ... entsprechendes für die anderen Programme ... und was genau ist jetzt zu klären?

 

Da es standardmäßig aktiviert ist, dachte ich, dass es schon einen Sinn hat. Aber wie gesagt: ich benutze kein Programm von dem ich weiß dass es BerkDB benutzt ... und die Frage zielte halt auf Antworten wie "Ohne Berkdb wird dein PC deinen Kühlschrank plündern ... ... ... und der gdm braucht 300mal so lange zum starten" ... sowas in der Richtung  :Wink: 

----------

## Klaus Meier

 *Libby wrote:*   

> Und wo genau ist jetzt euer Problem? Wenn ich PHP ohne BerkeleyDB-Unterstützung kompiliere, dann kann ich halt in einem PHP-Script keine BerkeleyDB benutzen (dba_open & Co.) ... entsprechendes für die anderen Programme ... und was genau ist jetzt zu klären?

 Ja, danke für diesen Hinweis. Aber ich denke so weit waren alle, die sich an diesem Thread beteilig haben auch vorher schon.

Um es noch einmal ganz volkstümlich auszudrücken: Bringt es was, in einen Volvo einen Renaultmotor einzubauen.  Das war die Fragestellung. Und da helfen auch Antworten in der Art: In jedem Volvo ist doch schon ein Motor drin, einfach nicht weiter.

----------

## l3u

Na Hauptsache, ihr kennt euch alle noch aus ;-)

----------

