Portupgrade

Installieren

cd /usr/ports/ports-mgmt/portupgrade make install clean
  lqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqk
  x                Options for portupgrade 2.4.9.3,2                   x
  x lqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqk x
  x x           [X] BDB4  Use Berkeley DB >=2 as backend             x x
  x x           [ ] BDB1  Use Berkeley DB 1.85 as backend            x x
  tqmqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqjqu
  x                       [  OK  ]       Cancel                        x
  mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqj
  • Als nächstes installiert er Ruby. Hier nehm ich einfach die Default Einstellungen.
  • Nun kommt Perl:
  lqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqk
  x Options for perl-threaded 5.12.4_3                                 x
  x lqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqk x
  x x       [ ] DEBUGGING      Build with debugging support          x x
  x x       [ ] GDBM           Build GDBM_File extension             x x
  x x       [*] PERL_MALLOC    Use Perl malloc                       x x
  x x       [*] PERL_64BITINT  Use 64 bit integers (on i386)         x x
  x x       [*] THREADS        Build threaded perl                   x x
  x x       [ ] MULTIPLICITY   Use multiplicity                      x x
  x x       [ ] SITECUSTOMIZE  Run-time customization of @INC        x x
  x x       [*] USE_PERL       Rewrite links in /usr/bin             x x
  x mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqj x
  tqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqu
  x                   <  OK  >          <Cancel>                       x
  mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqj
  • Als nächstes ist m4 dran -> Default Einstellungen
Fertig 🙂 nun müssen wir die Ports updaten:

Ports-DB updaten

Danach updaten cd /usr/ports/ make update Das dauert nun wieder recht lange, bis alle Daten aktualisiert sind:
--------------------------------------------------------------
>>> Running /usr/local/bin/cvsup
--------------------------------------------------------------
Parsing supfile "/usr/share/examples/cvsup/ports-supfile"
Connecting to cvsup.ch.FreeBSD.org
Connected to cvsup.ch.FreeBSD.org
Server software version: SNAP_16_1h
Negotiating file attribute support
Exchanging collection information
Establishing multiplexed-mode data connection
Running
Updating collection ports-all/cvs
 Edit ports/LEGAL
  Add delta 1.405 2005.05.07.09.55.42 linimon
 Edit ports/dns/nsd/scripts/configure.nsd
  Add delta 1.2 2005.05.06.11.50.25 novel
 Edit ports/editors/code-browser/Makefile
  Add delta 1.6 2005.05.08.20.22.33 jylefort
 Edit ports/editors/code-browser/distinfo
....
Shutting down connection to server
Finished successfully

Bash Installieren

Bash installieren, damit man überhaupt arbeiten kann: cd /usr/ports/shells/bash/ make install clean Während der Installation wird die neue Bash in die Liste der erlaubten Shells eingetragen:
cat /etc/shells
# $FreeBSD: release/9.0.0/etc/shells 59717 2000-04-27 21:58:46Z ache $
#
# List of acceptable shells for chpass(1).
# Ftpd will not allow users to connect who are not using
# one of these shells.

/bin/sh
/bin/csh
/bin/tcsh
/usr/local/bin/bash
/usr/local/bin/rbash
Anschliessend muss man nur noch bei den entsprechenden Usern (auch von root) die Bash ändern (und allfällige andere Infos):
chsh myusername
chsh root
Hier nun also die Shell anpassen:
#Changing user information for myusername.
Login: myusername
Password: **********
Uid [#]: 1001
Gid [# or name]: 1001
Change [month day year]:
Expire [month day year]:
Class:
Home directory: /home/myusername
Shell: /usr/local/bin/bash
Full Name: Mein Name
Office Location:
Office Phone:
Home Phone:
Other information:

 .bashrc

Ich arbeite in der Bash gerne mit Abkürzungen. Damit ich die Bash so nutzen kann, wie ich das will, muss ich also noch die .bashrc im User HomeDir erstellen (für jeden User.
cd /home/myusername
vi .bashrc
Paste:
# .bashrc
# Kommentare fangen mit einem Hash an.

IGNOREEOF=1
HISTFILESIZE=100000000
history_cont=ignoredups
PS1="\u@\h(\w)> " 

# aliase sind eine einfache Möglichkeit sich Tipparbeit
# zu sparen.
alias cs='cvs status | grep Status | grep -v Up-to'
alias df='df -k'
alias dir='ls -aglF'
alias l='last | more'
alias ll='ls -aglF'
alias cd..='cd ..'
alias ..='cd ..'
alias ...='cd ../..'
alias whois.at='whois -h whois.nic.at'
alias whois.ch='whois -h whois.nic.ch'
alias whois.eu='whois -h whois.ripe.net'
alias whois.ns='whois -h whois.networksolutions.com'
alias whois.swinog='whois -h whois.swinog.ch'
alias whois.us='whois -h whois.nic.us'
alias whois.rs='whois -h rs.internic.net'
alias whois.info='whois -h whois.afilias.net'
alias whois.biz='whois -h whois.nic.biz'
alias whois.de='whois -h whois.denic.de'
alias cdname='cd /etc/namedb/secondary'
alias cdmail='cd /etc/mail'
alias rcsendmail='/etc/rc.d/sendmail'
alias vi='vim'
alias rz='/usr/local/bin/lrz  -ce'
alias sz='/usr/local/bin/lsz'
Damit .bashrc überhaupt ausgeführt wird, wird folgendes ins .bash_profile eingetragen. Im .bash_profile steht alles drin, was beim Login ausgeführt werden muss.
vi .bash_profile
Paste:
if [ -f ~/.bashrc ]; then . ~/.bashrc; fi
Wenn ich das ganze als root User gemacht habe, noch die Permissions richtig setzen:
chown myusername:myusername .bash*
Jetzt noch das gleiche für den User Root:
cp .bash* /root/
chown root:wheel /root/.bash*
Wenn Du dich nun erneut einloggst, kannst Du die Änderungen gleich im Shell sehen. Ist nun also einiges übersichtlicher: Vorher:
FreeBSD9#
Jetzt:
root@FreeBSD9(/usr/ports/ports-mgmt/portupgrade)>

Kernel

Updaten der Sources

Zuerst muss man schauen, dass die Sources aktuell sind: cd /usr/src/ make update Jetzt werden die ganzen Sources geupdated:
 ————————————————————– >>> Running /usr/local/bin/cvsup ————————————————————– Parsing supfile “/usr/share/examples/cvsup/stable-supfile” Connecting to cvsup.ch.FreeBSD.org Connected to cvsup.ch.FreeBSD.org Server software version: SNAP_16_1h Negotiating file attribute support Exchanging collection information Establishing multiplexed-mode data connection Running Updating collection src-all/cvs Shutting down connection to server Finished successfully Parsing supfile “/usr/share/examples/cvsup/ports-supfile” Connecting to cvsup.ch.FreeBSD.org Connected to cvsup.ch.FreeBSD.org Server software version: SNAP_16_1h Negotiating file attribute support Exchanging collection information Establishing multiplexed-mode data connection Running Updating collection ports-all/cvs Edit ports/accessibility/gnomespeech/Makefile Add delta 1.13 2005.09.30.03.22.34 marcus Edit ports/accessibility/gnomespeech/distinfo Add delta 1.10 2005.09.30.03.22.34 marcus Edit ports/accessibility/gnomespeech/files/patch-drivers_festival_festivalsynthesisdriver.c Add delta 1.2 2005.09.30.03.22.34 marcus Edit ports/devel/p5-Data-Taxonomy-Tags/Makefile […] Shutting down connection to server Finished successfully Parsing supfile “/usr/share/examples/cvsup/doc-supfile” Connecting to cvsup.ch.FreeBSD.org Connected to cvsup.ch.FreeBSD.org Server software version: SNAP_16_1h Negotiating file attribute support Exchanging collection information Establishing multiplexed-mode data connection Running Updating collection doc-all/cvs Shutting down connection to server Finished successfully
Sehr wichtig ist nun, unbedingt /usr/src/UPDATING kurz zu lesen. Eventuell hat es wichtige Änderungen gegeben. Dieses Wissen kann Dir später bei eventueller Fehlersuche sehr hilfreich sein. more /usr/src/UPDATING

Erstellen/Bearbeiten der Kernel Konfiguration

Man sollte das GENERIC File jeweils nicht direkt ändern. Bei einem Updaste wird das GENERIC File immer wieder überschrieben und aktualisiert. Das Beste ist, wenn man das Basis GENERIC File einfach in einer eigenen Datei included und dann die eigenen Optionen hinzufügt (options oder device) bzw. disabled (nooptions oder nodevice). cd /usr/src/sys/amd64/conf/ Jetzt das File bearbeiten bzw. erstellen vi FREEBSD9 Ps: VIM haben wir ja noch nicht installiert. Jetzt würde eine Fehlermeldung deswegen kommen. Einfach Alias nochmals kurz überschreiben, bis wir VIM installiert haben. alias vi='vi' Am Besten auch gleich eine zweite Shell öffnen damit Du mit dmesg arbeiten kannst. Du kannst Dann z.B. mit dmesg | grep -is smp schauen, ob diese (Device) Option benötigt wird oder nicht. Taucht sie auf, drin lassen – wenn nicht, kann man sie in der Regel deaktivieren. Vorsichtshalber jedoch immer erst im FreeBSD Handbuch nachschauen und, falls nicht ganz sicher, lieber drin lassen.

Kernel Kompilieren

cd /usr/src/ make buildkernel KERNCONF=FREEBSD9 und nun gaaaaaaaaaaaanz lang warten bis fertig. Kann je nach System locker zwischen 20 Minuten und mehreren Stunden dauern… Kompilierung war erfolgreich:
 ————————————————————– >>> Kernel build for FREEBSD9 completed on Wed Jan 25 16:50:22 CET 2012 ————————————————————–
Tip: Die Variable KERNCONF kann auch im /etc/make.conf definiert werden.

Installation des neuen Kernels

Sobald der Kernel sauber kompiliert wurde (man erkennt es daran, dass die Kompilation nicht mit einem Fehler abgebrochen wurde), kann man den Kernel installieren: make installkernel KERNCONF=FREEBSD9 Dieser Vorgang geht in der Regel recht schnell. Install fertig:
===> zlib (install) install -o root -g wheel -m 555   zlib.ko /boot/kernel install -o root -g wheel -m 555   zlib.ko.symbols /boot/kernel kldxref /boot/kernel root@FreeBSD9(/usr/src)>
Um den neuen Kernel aktiv werden zu lassen, heisst es: Rebooten! sync;sync;reboot Nun startet der Server mit dem neuen Kernel. Vorher:
$> uname -a FreeBSD FreeBSD9 9.0-RELEASE FreeBSD 9.0-RELEASE #0: Tue Jan  3 07:46:30 UTC 2012     root@farrell.cse.buffalo.edu:/usr/obj/usr/src/sys/GENERIC  amd64
Nachher:
$> uname -a FreeBSD FreeBSD9 9.0-STABLE FreeBSD 9.0-STABLE #0: Wed Jan 25 16:38:36 CET 2012     myusername@FreeBSD9:/usr/obj/usr/src/sys/FREEBSD9  amd64

Fehler

Sollte der Server nicht booten finden sich im FreeBSD-Handbuch nützliche Hilfen dazu.

World

Neben dem Kernel sollte man auch darauf achten, dass die Userworld immer up to date ist. Das heisst, dass wir das komplette Basissystem schön aktuell halten. Nur so kriegt man die Sicherheitslöcher aus den ganzen Basis-Tools (wie z.B. su, etc.). Auch hier bietet das FreeBSD-Handbuch wieder eine gute Grundlage, wie man vorgehen muss.

Basissystem kompilieren

Alle Tools neu kompilieren cd /usr/src make buildworld Nun heisst es wieder warten…. Auf meiner ersten Maschine dauerte es ca. 4 Stunden, auf dem Nachfolger ca. 3 Stunden, auf dem letzten (Dell) 1h 30 Minuten… und in der Cloud Eigentlich hätte ich etwas mehr CPUs hinufügen können während dem Install um das ganze etwas zu beschleunigen. Blöd 😉 Danach Server booten: sync;sync;reboot
  • *

    You may use these HTML tags: <a> <abbr> <acronym> <b> <blockquote> <cite> <code> <del> <em> <i> <q> <s> <strike> <strong>

  • Comment Feed for this Post
Go to Top