FreeBSD: Unterschied zwischen den Versionen
Rabe (Diskussion | Beiträge) (FreeBSD installieren und Updaten, ein Anfang.) |
Rabe (Diskussion | Beiträge) K (→Weblinks) |
||
Zeile 223: | Zeile 223: | ||
* [http://www.pcbsd.org PC-BSD], ein FreeBSD Spinoff mit dem Ziel von mehr Einsteigerfreundlichkeit. | * [http://www.pcbsd.org PC-BSD], ein FreeBSD Spinoff mit dem Ziel von mehr Einsteigerfreundlichkeit. | ||
[[Kategorie:BSD]] | [[Kategorie:BSD]] |
Version vom 23. März 2006, 19:43 Uhr
'FreeBSD' ist ein freies Betriebssystem der BSD-Familie. Es bietet umfangreiche Unterstützung moderne Hardware der 'ix86'- und 'amd64' Architekturen und einige weitere, weniger verbreitete Architekturen.
Für Neuinstallationen empfiehlt sich das aktuelle FreeBSD 6.0, zum aktuellen Zeitpunkt ist allerdings FreeBSD 6.1 schon in der Endphase der Entwicklung und wird in absehbarer Zeit erscheinen. Siehe auch Release Information
Um bestehende Systeme upzudaten, die aus einem älteren Zweig stammen, gibt es folgende:
- FreeBSD 3.x: Neuinstallation.
- FreeBSD 4.x: Updaten auf 4.11 (wird allerdings nicht mehr supportet).
- FreeBSD 5.x: Updaten auf 5.4 oder 5.5 (kurz vor der Fertigstellung, wird das letzte 5.x Release sein)
System installieren
von CD
Eine CD kann man käuflich erwerben (und damit das Projekt unterstützen), oder als 2 ISO-Files herunterladen. Eine Übersicht über die verschiedenen Hardwareplattformen und Bezugsquellen steht unter Getting FreeBSD. Hier soll für i386 (Intel 32 Bit) in kurzen Schritten gezeigt werden, was wo und wie:
Vom freebsd.org Server downloaden:
$ wget ftp://ftp.freebsd.org/pub/FreeBSD/releases/i386/ISO-IMAGES/6.0/6.0-RELEASE-i386-disc{1,2}.iso
Mit prozilla Downloadmanager automatisch die schnellsten FTP-Mirrors suchen lassen:
$ proz -s -k 2 ftp://ftp.freebsd.org/pub/FreeBSD/releases/i386/ISO-IMAGES/6.0/6.0-RELEASE-i386-disc1.iso (ca 550MB) $ proz -s -k 2 ftp://ftp.freebsd.org/pub/FreeBSD/releases/i386/ISO-IMAGES/6.0/6.0-RELEASE-i386-disc2.iso (ca 650MB)
Die ISO-Dateien wie gewohnt auf CD brennen.
per FTP
Für eine FTP Installation benötigt man direkt Internet-Zugriff. Ich habe bisher nicht probiert, ob man aus der Installation heraus direkt DSL machen kann, aber wenn der Rechner in einem LAN steht, das per Router am Internet angeschlossen ist, funktioniert das einwandfrei.
ISO Image herunterladen:
$ wget ftp://ftp.freebsd.org/pub/FreeBSD/releases/i386/ISO-IMAGES/6.0/6.0-RELEASE-i386-bootonly.iso (ca, 44MB)
Das ISO File auf CD brennen und booten.
Software installieren
Binary Packages
Von der Installations CD aus können fertige Pakete entweder via CD/DVD oder FTP installiert werden. Bei der FTP-Installation empfiehlt es sich, einen in deutschland gehosteten FTP Server zu wählen, zB ftp.de.freebsd.org, oder einen der mirrors ftp2.de.freebsd.org, ... ftp6.de.freebsd.org.
Wenn das System schon installiert ist, kann man den Installer auch nochmal direkt aufrufen, unter /usr/sbin/sysinstall (ab 6.x) oder als /stand/sysinstall (4.x und 5.x).
Binary Packages lassen sich auch einzepn mit Hilfe von "pkg_add" installieren:
# pkg_add bash.tbz
oder wenn das Package automatisch per FTP heruntergeladen werden soll:
# pkg_add -r bash
Über portinstall -PP (= nur packages verwenden) geht es auch, sofern bereits installiert:
# portinstall -PP bash
Ports
Die Ports sind ein Framework zum Installieren von Fremdsoftware, die nicht im Basis-System enthalten ist. Anders als bei den meisten Linux-Distriburionen sind BSDs nur Basissysteme, die mehr oder weniger Software beinhalten. Ein Port ist dabei nur ein Verzeichnis unter /usr/ports/xyz/portname/, welches ein paar Zeilen Makefile enthält, ggf. ein paar patches und Informatione zur Installation.
Ports sind so aufgebaut, dass sie bei der Installation automatisch Abhängigkeiten zu anderen Bibliotheken und Programmen prüfen, und diese ggf. mitinstallieren. Dabei kann es zu kniffeligen Versionskonflikten kommen, gerade beim Update. Zusatztools wie portupgrade versuchen diese Abhängigkeiten noch feiner zu berücksichtigen bzw. bieten Tools wie pkgdb an, mit der man Abhängigkeitskonflikte auflösen kann (pkgdb -F).
Beispiel: shells/bash:
/usr/ports/shells/bash# ls -la * -rw-r--r-- 1 root wheel 3299 Mar 7 07:03 Makefile Zentrales Makefile -rw-r--r-- 1 root wheel 2038 Feb 22 06:57 distinfo MD5 und SHA256 Summen aller Dateien, die zum Port gehören -rw-r--r-- 1 root wheel 505 Oct 14 2004 pkg-deinstall Hilfsscript -rw-r--r-- 1 root wheel 381 Jul 31 2004 pkg-descr Kurzbeschreibung (siehe unten) -rw-r--r-- 1 root wheel 418 Oct 14 2004 pkg-install Hilfsscript -rw-r--r-- 1 root wheel 2254 Jul 31 2004 pkg-plist Informationen zur Installation für das Makefile _ files: total 30 drwxr-xr-x 3 root wheel 512 Feb 22 06:57 . drwxr-xr-x 4 root wheel 512 Mar 7 07:03 .. -rw-r--r-- 1 root wheel 453 Feb 22 06:57 patch-builtins::Makefile.in -rw-r--r-- 1 root wheel 910 Feb 22 06:57 patch-config-top.h -rw-r--r-- 1 root wheel 639 Feb 22 06:57 patch-doc::Makefile.in -rw-r--r-- 1 root wheel 442 Feb 22 06:57 patch-doc::bash.1 -rw-r--r-- 1 root wheel 907 Feb 22 06:57 patch-doc::bashref.texi -rw-r--r-- 1 root wheel 705 Feb 22 06:57 patch-lib::readline::display.c -rw-r--r-- 1 root wheel 313 Feb 22 06:57 patch-support::mkversion.sh -rw-r--r-- 1 root wheel 5819 Feb 22 06:57 xpatch-colonbreakswords -rw-r--r-- 1 root wheel 3569 Feb 22 06:57 xpatch-implicitcd
Die sogenannten Distfiles werden nach (standardmäßig) /usr/ports/distfiles/ heruntergeladen. Manche Ports (z.B. KDE) haben so viele Dateien, dass diese in einem eigenen Unetrverzeichnis abgelegt werden (/usr/ports/distfiles/KDE/)
Die FreeBSD ports enthalten derzeit über 14.000 Einträge, zu finden unter /usr/ports.
Die stärksten Kategorien sind (aktuell):
# < INDEX-6 cut -f 2 -d "|" | cut -f 4 -d "/" | sort | uniq -c | sort -rn | head 1699 devel 1004 www 837 textproc 793 games 788 net 655 sysutils 647 graphics 633 security 603 audio 567 mail
Eine aktuelle Übersicht über alle Ports kann man sich so generieren:
# cd /usr/ports # find */ -name "pkg-descr" | sort | xargs head -n 100 > pkg-descr_ALL
Die Ausgabe dieses Befehls dauert eine Weile oder kann hier aufgerufen werden: http://rabe.uugrn.org/FreeBSD/ports/pkg-descr_ALL.txt (ca 5.5MB). In dieser Datei kann man bequem nach Software suchen, z.B.
==> shells/bash/pkg-descr <== This is GNU Bash, version 3.0. Bash is the GNU Project's Bourne Again SHell, a complete implementation of the POSIX.2 shell spec, but also with interactive command line editing, job control on architectures that support it, csh-like features such as history substitution and brace expansion, and a slew of other features. WWW: http://cnswww.cns.cwru.edu/~chet/bash/bashtop.html
Für die Installation von Ports ist portupgrade zu empfehlen:
# portinstall shells/bash
Man kann statt der Angabe des Verzeichnisses auch den generischen Namen verwenden:
# portinstall bash
Update
cvsup
Systemsourcen (/usr/src) und Ports (/usr/ports) kann man schnell, effizient und bequem mit cvsup updaten. Man benötigt neben dem Tool selbst ein sogenanntes supfile, welches genauere Angaben darüber enthält, was wo wie upgedatet werden soll.
Ich verwende folgendes:
*default host=cvsup.de.freebsd.org *default base=/var/db *default prefix=/usr *default release=cvs tag=RELENG_6_0 *default delete use-rel-suffix # *default compress src-all ports-all tag=. # doc-all tag=.
Dieses Supfile updatet die Systemsourcen in /usr/src für den Stand RELENG_6_0, was bedeutet, dass die Sourcen von Release 6.0 mit Sicherheitspatches aktualisiert werden.
Andere Tags sind:
- RELENG_6_0_0_RELEASE: der exakte Stand vom Release-Datum (6.0-RELEASE)
- RELENG_6_0: Das Release plus Security-Fixes (z.B. 6.0-RELEASE-p5)
- RELENG_6: Die aktuelle Entwicklung für 6.x (z.B. 6-STABLE), derzeit 6.1 PREREELASE
Ports KANN man am Release koppeln, man KANN aber auch immer die aktuellsten Ports verwenden, das ist "tag=.".
portupgrade
mit portupgrade und portversion lassen sich bequem aktuellere Ports herausfinden bzw. updaten.
# portversion -vl "<" 3dm-2.04.00.011,1 < needs updating (port has 2.04.00.014,1) ImageMagick-6.2.5.5_1 < needs updating (port has 6.2.5.5_3) ORBit-0.5.17_2 < needs updating (port has 0.5.17_3) ORBit2-2.12.5_1 < needs updating (port has 2.12.5_2) aalib-1.4.r5_1 < needs updating (port has 1.4.r5_2) acroread7-7.0.1 < needs updating (port has 7.0.1,1) apr-gdbm-db4-1.2.2_2 < needs updating (port has 1.2.2_3) [...] bash-3.0.16_1 < needs updating (port has 3.1.10_1) [...]
Mit portupgrade installiert man dann den oder die ports neu, die man möchte, wobei portupgrade dabei prüft, ob Abhängigkeiten ebenfalls aktualisiert werden sollen. Das ist allerdings ein recht komplexes Thema und wird unter portuprade genauer erläutert. Als Beispiel soll hier das Upgdate der Bash von 3.0 auf 3.1 erläutert werden:
# portupgrade bash-3.0.16_1 ---> Upgrading 'bash-3.0.16_1' to 'bash-3.1.10_1' (shells/bash) ---> Building '/usr/ports/shells/bash' bash-3.1.10_1: "/usr/ports/devel/libtool15" non-existent -- dependency list incomplete ===> Cleaning for gettext-0.14.5_2 ===> Cleaning for libiconv-1.9.2_2 ===> Cleaning for bash-3.1.10_1 ===> Vulnerability check disabled, database not found ===> Extracting for bash-3.1.10_1 => MD5 Checksum OK for bash/bash-3.1.tar.gz. => SHA256 Checksum OK for bash/bash-3.1.tar.gz. => MD5 Checksum OK for bash/bash31-001. => SHA256 Checksum OK for bash/bash31-001. [...] ===> Patching for bash-3.1.10_1 ===> Applying distribution patches for bash-3.1.10_1 ===> Applying extra patch /usr/local/ports/shells/bash/files/xpatch-implicitcd ===> Applying extra patch /usr/local/ports/shells/bash/files/xpatch-colonbreakswords ===> Applying FreeBSD patches for bash-3.1.10_1 ===> bash-3.1.10_1 depends on shared library: intl - found ===> Configuring for bash-3.1.10_1 checking build system type... i386-portbld-freebsd6.0 checking host system type... i386-portbld-freebsd6.0 checking for emacs... no checking for xemacs... no _ Beginning configuration for bash-3.1-release for i386-portbld-freebsd6.0 _ checking for gcc... cc checking for C compiler default output... a.out [...] ---> Backing up the old version ---> Uninstalling the old version ---> Deinstalling 'bash-3.0.16_1' pkg_delete: package 'bash-3.0.16_1' is required by these other packages and may not be deinstalled (but I'll delete it anyway): apsfilter-7.2.6_2 [Updating the pkgdb <format:dbm_hash> in /var/db/pkg ... - 587 packages found (-1 +0) (...) done] ---> Installing the new version via the port ===> Installing for bash-3.1.10_1 ===> bash-3.1.10_1 depends on shared library: intl - found ===> Generating temporary packing list ===> Checking if shells/bash already installed [...] ===> Compressing manual pages for bash-3.1.10_1 ===> Registering installation for bash-3.1.10_1 ===> Cleaning for gettext-0.14.5_2 ===> Cleaning for libiconv-1.9.2_2 ===> Cleaning for bash-3.1.10_1 ---> Cleaning out obsolete shared libraries [Updating the pkgdb <format:dbm_hash> in /var/db/pkg ... - 588 packages found (-0 +1) . done]
Portupgrade kümmert sich vollautomatisch um den gesamten Vorgang und ist ein intelligener Überbau für die FreeBSD Ports.
Weblinks
- FreeBSD Projektseite
- FreeBSD Handbuch
- PC-BSD, ein FreeBSD Spinoff mit dem Ziel von mehr Einsteigerfreundlichkeit.