Konfiguration finden und übernehmen

alex27

Well-Known Member
Ich habe einen Server auf dem so einiges über ports installiert wurde und nun wüsste ich z.B. gerne mit welchen ARG'S das make für den mysql-server aufgerufen wurde um es auf dem neuen Rechner exakt so zu machen. Leider finde ich das nirgendwo. Unter Linux war das bisher immer sehr einfach aber unter FreeBSD fehlt mir da die Erfahrung.

Der Server hat auch eine custom Kernel config, wie kann ich die denn finden ? Unter Linux halt einfach nur die .config im Kernel source Verzeichnis aber hier weiss ich es leider auch nicht :confused:
 
/var/db/pkg/mysql*/OPTIONS (IIRC).

uname -v liefert den Host und den Pfad zur Konfig-Datei, mit welcher der Kernel gebaut wurde.


Leider habe ich keine Datei Namens Options in dem Verzeichnis.

uname -v liefert mir wohl das source Verzeichnis von dem Kernel aber wie sehe ich nun wie die config Datei heisst, denn die kann ja wenn ich das bisher richtig verstanden habe überall liegen und wird dann einfach nur per make installkernel KERNCONF=MYKERNEL aufgerufen. Ich habe wohl in dem Verzeichnis wo GENERIC liegt noch eine Datei Namens kernel gefunde und ein diff zwischen den beiden zeigt minimale Unterschiede. Aber schon fast zu minimal dafür das der Kernel soviel weniger Speicher belegt und vor allem auch deutlich schneller lädt als der Standard Kernel.
 
Hallo!

Leider habe ich keine Datei Namens Options in dem Verzeichnis.
Das stimmt wohl. Ich halte meine Konfigurations-Optionen immer in /etc/make.conf fest (wo sie IMHO auch hingehören).

uname -v liefert mir wohl das source Verzeichnis von dem Kernel aber wie sehe ich nun wie die config Datei heisst,

Mit uname -i findest du heraus, wie die Konfiguration heisst. Liegen muss sie in /usr/src/sys/$arch/conf.

Code:
mann@tyan:~$ uname -i
FILESERVER
mann@tyan:~$ ls /usr/src/sys/$(uname -m)/conf/$(uname -i)
/usr/src/sys/i386/conf/FILESERVER

HTH & Ciao.
Markus Mann
];-)
 
Hallo!

Das stimmt wohl. Ich halte meine Konfigurations-Optionen immer in /etc/make.conf fest (wo sie IMHO auch hingehören).

Mit uname -i findest du heraus, wie die Konfiguration heisst. Liegen muss sie in /usr/src/sys/$arch/conf.

Das mit dem uname -i funtioniert, danke. Bezüglich der Optionen sollte man für alle Ports die man installiert die Optionen da reinschreiben ? Damit dann beim Port Update die richtigen ARG's genommen werden, sehe ich das richtig ?

Aber mein momentanes Problem ist eher das ich auf einem Server mysql-server installiert habe und ich wissen müsste mit welchen ARG's das Make ausgeführt wurde. Normal müsste ich dafür ja nur z.B. in die config.status gucken aber die ist ja hier nicht vorhanden.
 
Hallo!

Das mit dem uname -i funtioniert, danke. Bezüglich der Optionen sollte man für alle Ports die man installiert die Optionen da reinschreiben ?
Kurze Antwort: Ja.

Lange Antwort: Man liest sich das Makefile des Ports durch. Dort steht drin, welche Optionen der Port bietet (fast ausschliesslich WITH_$IRGENDWAS und WITHOUT_$IRGENWAS Variablen), machen Ports bieten auch eine schöne Übersicht im Makefile. Viele Ports verwenden OPTIONS, die beim Installieren interaktiv abgefragt und dann gespeichert werden (kann man auch mit make config im jeweiligen Verzeichnis manuell aufrufen, make rmconfig löscht das notfalls wieder).

Du solltest dich intensiver mit dem Ports-System vertraut machen.

Aber mein momentanes Problem ist eher das ich auf einem Server mysql-server installiert habe und ich wissen müsste mit welchen ARG's das Make ausgeführt wurde.
Wer hat das installiert? Der sollte sich ja noch an die Optionen erinnern. Wenn es das Package vom Release war, dann wurde das mit den default Optionen gebaut.

Vermutlich wird das gar nicht so heiß gegessen, wie du jetzt meinst. Stell fest, welche Features überhaupt verwendet werden (InnoDB?) und welcher Standard-Zeichensatz verwendet wird:

Code:
mysql> show variables like 'character_set_server';
+----------------------+--------+
| Variable_name        | Value  |
+----------------------+--------+
| character_set_server | latin1 |
+----------------------+--------+

Diese Optionen sind dann schnell in /etc/make.conf gesetzt:

Code:
DEFAULT_MYSQL_VER=41
WITH_CHARSET=latin1
WITH_XCHARSET=all
WITH_COLLATION=latin1_german1_ci
.if ${.CURDIR:M*/databases/mysql*}
WITH_OPENSSL=YES
.endif

Speziell der mysql41-server Port hat eine schöne Übersicht über die Optionen:

Code:
mann@tyan:~$ cd /usr/ports/databases/mysql41-server
mann@tyan:/usr/ports/databases/mysql41-server$ make pre-fetch

You may use the following build options:

        WITH_CHARSET=charset    Define the primary built-in charset (latin1).
        WITH_XCHARSET=list      Define other built-in charsets (may be 'all').
        WITH_COLLATION=collate  Define default collation (latin1_swedish_ci).
        WITH_OPENSSL=yes        Enable secure connections.
        WITH_LINUXTHREADS=yes   Use the linuxthreads pthread library.
        WITH_PROC_SCOPE_PTH=yes Use process scope threads
                                (try it if you use libpthread).
        BUILD_OPTIMIZED=yes     Enable compiler optimizations
                                (use it if you need speed).
        BUILD_STATIC=yes        Build a static version of mysqld.
                                (use it if you need even more speed).
        WITHOUT_INNODB=yes      Disable support for InnoDB table handler.
        WITH_NDB=yes            Enable support for NDB Cluster.

HTH & Ciao.
Markus Mann
];-)
 
Hallo max93, Danke für den sehr informativen Post.

Das make pre-fetch ist sehr praktisch, schade das es nicht immer was anzeigt :)

Leider ist derjenige der den mysql-server installiert, hat zur Zeit nich zu erreichen aber ich denke ich habe mittlerweile alle benötigten Werte.

Ich bin gerade dabei mich mit dem Ports System vertraut zu machen, kannst Du noch irgendwelche URL's zum nachlesen empfehlen? Ich werde auf jeden Fall /etc/make.conf für alle Programme anpassen die nicht mit den default Werten erstellt werden.

-Alex
 
Hallo!

Ich bin gerade dabei mich mit dem Ports System vertraut zu machen, kannst Du noch irgendwelche URL's zum nachlesen empfehlen?
Leider nicht so richtig, da muss man wohl "reinwachsen". Ich habe jedenfalls die Erfahrung gemacht, dass man nicht versuchen sollte gegen das Ports-System zu arbeiten. Die meisten Ports sind wirklich vorbildlich gepflegt, da gibt es kaum "Brösel". Wenn man Makefiles einigermassen lesen kann, ist das schon die halbe Miete. Den Rest erledigt man mit portsnap und portupgrade.

Ciao.
Markus Mann
];-)
 
Ich bin gerade dabei mich mit dem Ports System vertraut zu machen, kannst Du noch irgendwelche URL's zum nachlesen empfehlen? Ich werde auf jeden Fall /etc/make.conf für alle Programme anpassen die nicht mit den default Werten erstellt werden.
Im Wiki gibt es einige Artikel, die für dich interessant sein könnten:

http://wiki.bsdforen.de/Make.conf_optimieren
http://wiki.bsdforen.de/Bsdadminscripts

Natürlich gibt es noch mehr, das sind nur die, die ich geschrieben habe.
 
Leider nicht so richtig, da muss man wohl "reinwachsen". Ich habe jedenfalls die Erfahrung gemacht, dass man nicht versuchen sollte gegen das Ports-System zu arbeiten. Die meisten Ports sind wirklich vorbildlich gepflegt, da gibt es kaum "Brösel". Wenn man Makefiles einigermassen lesen kann, ist das schon die halbe Miete. Den Rest erledigt man mit portsnap und portupgrade.

Mit dem lesen von makefiles habe ich zum Glück kein Problem :) Ich lese immer über portsnap ist das besser als cvsup ? Ich habe FreeBSD zuletzt vor einigen Jahren benutzt und damals mit cvsup darum habe ich das jetzt auch wieder genommen.
 
Du kannst auch csup statt cvsup verwenden, das ist schon im Grundsystem dabei. Portsnap ist schneller, geht aber natürlich nur für ports.
 
Nun muss ich dieses alte Thema noch einmal wiederbeleben :)

Ich habe praktisch das gleiche Problem wie damals, ich möchte die build arg's von MySQL v5.1 finden. Es exisitert leider kein options file und mit show variables kann ich zwar einiges an Informationen finden aber leider nicht die folgenden Werte:

WITH_OPENSSL
WITH_LINUXTHREADS
WITH_PROC_SCOPE_PTH
WITH_FAST_MUTEXES
BUILD_OPTIMIZED
BUILD_STATIC

Ich suche eine Möglichleit diese build flags zu finden. Habe schon alles Mögliche versucht aber leider ohne Erfolg. Ich hoffe hier hat jemand einen guten Rat :) Danke schonmal.
 
Nein leider nicht make configure zeigt nur als message welche build options ich nutzen kann. Das hatte ich als erstes versucht :)
 
Sicher, dass du nicht make configure mit make config verwechselst? Das sind nämlich zwei ziemlich unterschiedliche Dinge.
 
Ja sicher :) Ausserdem scheinen mir praktisch alle Paramter auf der commandline übergeben zu werden beim MySQL-Server. Ich habe dort zumindest noch kein Menü gesehen.
 
Back
Top