BlogBlog ÜbersichtjailscriptportsoptFreeBSDLinksThermoskanne

Dateien mit allen Dateiattributen kopieren

Möchte man Dateien kopieren, die Dateiattribute der neu erstellten Dateien jedoch identisch mit den Originalen belassen, so kann man dies einfach mit cp -p machen. Dies kopiert auch alle Attribute wie die Zeitstempel, Dateiflags, Dateiberechtigungen, User ID und Group ID.

Beispiel:

Datei eines Benutzers wird von root nur mit cp kopiert:

# ls -ol
-rwxrwxrwx 1 beat wheel schg 9 27 Jan 16:32 testdatei*
# cp testdatei testdatei2
# ls -ol
-rwxrwxrwx 1 beat wheel schg 9 27 Jan 16:32 testdatei*
-rwxr-xr-x 1 root wheel - 9 27 Jan 16:35 testdatei2*

Die selbe Datei wird von root mit cp -p kopiert:


# cp -p testdatei testdatei3
# ls -ol
-rwxrwxrwx 1 beat wheel schg 9 27 Jan 16:32 testdatei*
-rwxr-xr-x 1 root wheel - 9 27 Jan 16:35 testdatei2*
-rwxrwxrwx 1 beat wheel schg 9 27 Jan 16:32 testdatei3*

Soll zusätzlich zum Kopieren noch überprüft werden, ob die Datei richtig kopiert wurde, so empfiehlt es sich cpdup zu verwenden. cpdup(1) findet man in den Ports unter sysutils/cpdup. Kopiert man eine Datei mit cpdup -m, so generiert cpdup einen MD5 Hash der Datei, kopiert die Datei und vergleicht den MD5 Hash der neu erstellten Datei mit dem Original. Stimmen diese nicht überein, so wird die Datei erneut kopiert.

Related Entries:
Gespeicherte Optionen nach OptionsNG konvertieren
Ports-Subversion-Repository spiegeln
sysinstall-Ersatz für neuere FreeBSD-Versionen
Alte FreeBSD-Port Patchdateien aufsplitten
FreeBSD-Portbaum auf Fehler überprüfen
 Permalink

Portbaum aktualisieren mit Portsnap

Alternativ zu CVSup kann der Portbaum auch mit portsnap auf den neusten Stand gebrach werden. Seit FreeBSD 6.0-BETA3 befindet sich portsnap im nun FreeBSD Basissystem. Welche Vorteile portsnap gegenüber CVSup haben soll, kann man hier nachlesen: http://www.daemonology.net/portsnap/

Benutzt man portsnap das erste mal, so muss man den Snapshot zuerst herunterladen:

# portsnap fetch
Looking up portsnap.FreeBSD.org mirrors... using portsnap1.FreeBSD.org.
Fetching public key... done.
Fetching snapshot tag... done.
Fetching snapshot metadata... done.
Fetching snapshot generated at Mi 11 Jan 2006 01:32:11 CET:
0d1d343821c1a727b12b377de9697b248fee48a81ea749100% of 38 MB 73 kBps 00m00s
Extracting snapshot... done.
Verifying snapshot integrity... done.
Fetching snapshot tag... done.
Fetching snapshot metadata... done.
Updating from Mi 11 Jan 2006 01:32:11 CET to Mi 11 Jan 2006 19:57:38 CET.
Fetching 4 metadata patches... done.
Applying metadata patches... done.
Fetching 0 metadata files... done.
Fetching 94 patches.....10....20....30....40....50....60....70....80....90.. done.
Applying patches... done.
Fetching 10 new ports or files... done.

Danach kann er mit folgendem Befehl entpackt werden:

# portsnap extract

Nachdem man dies einmal gemacht hat, kann man den Portbaum nun ganz einfach auf einen neueren Stand bringen:

# portsnap fetch update

Besitzt man eine FreeBSD Version in der portsnap noch nicht im Basisystem ist, also eine vor 6.0-BETA3 oder 7.0-CURRENT, so kann man portsanp alternativ aus den Ports installieren:

# cd /usr/ports/sysutils/portsnap && make install clean

Hat man den Portbaum noch nicht installiert, so kann man auch das Paket von portsnap installieren:

# pkg_add -r portsnap

Mehr Informationen hier: portsnap(8)

UPDATE 05.02.2007:

portsnap wurde von sysutils in die neue Kategorie ports-mgmt verschoben. portsnap kann auf FreeBSD Systemen vor 6.0-BETA3 wie folgt installiert werden:

# cd /usr/ports/ports-mgmt/portsnap && make install clean
Related Entries:
Gespeicherte Optionen nach OptionsNG konvertieren
Ports-Subversion-Repository spiegeln
sysinstall-Ersatz für neuere FreeBSD-Versionen
Alte FreeBSD-Port Patchdateien aufsplitten
FreeBSD-Portbaum auf Fehler überprüfen
 Permalink

Piepston der tcsh deaktivieren

Um den Piepston der tcsh zu deaktivieren, einfach folgenden Befehl eingeben:

# set nobeep

Möchte man das Piepsen generell ausschalten, kann man diesen Eintrag in die ~/.cshrc eines Benutzers oder in die /etc/csh.cshrc für alle Benutzer eintragen.

Related Entries:
Programm mit which finden
Gespeicherte Optionen nach OptionsNG konvertieren
Ports-Subversion-Repository spiegeln
sysinstall-Ersatz für neuere FreeBSD-Versionen
Alte FreeBSD-Port Patchdateien aufsplitten
 Permalink

Port auf einen älteren Stand zurücksetzen mit portdowngrade

Nachdem ich Sunbird auf 0.3a1 aktualisierte, waren alle Termine verschwunden und Sunbird weigerte sich standhaft die Termine zu importieren. Also musste die alte Sunbird Version wieder her.

Deshalb gleich sysutils/portdowngrade installiert:

# cd /usr/ports/sysutils/portdowngrade && make install clean

Sunbird deinstalliert:

# pkg_deinstall -f linux-sunbird

Und dann deskutils/linux-sunbird wieder auf den alten Stand gebracht:

# setenv CVSROOT :pserver:anoncvs@anoncvs2.de.FreeBSD.org:/home/ncvs
# cvs login
Logging in to :pserver:anoncvs@anoncvs2.de.freebsd.org:2401/home/ncvs
CVS password: anoncvs
# portdowngrade linux-sunbird

portdowngrade 0.6 by Heiner Eichmann
Please note, that nothing is changed in the ports tree
unless it is explicitly permitted in step 6!

Seeking port linux-sunbird ... found: deskutils/linux-sunbird

Step 1: Checking out port from CVS repository
CVS root directory (from CVSROOT environment variable): :pserver:anoncvs@anoncvs2.de.FreeBSD.org:/home/ncvs

Step 2: Reading the port history from the CVS repository

Step 3: Analyzing the port history from the CVS repository

Step 4: Load port version numbers and present results
Keys: space : next page d : details
p : previous page
enter : leave presentation and downdgrade if wanted
===================================================================================================================================================================================================
number date portversion comment
1 2005/12/07 13:13:31 0.3a1_1 - Update to 0.3a1
2 2005/06/17 22:59:27 0.2_1 Mega-patch to cleanup the ports infrastructure regarding our linux bits:
3 2005/03/01 22:24:25 0.2 new port: misc/linux-sunbird

Total lines: 3. Command: [Enter]
Enter version number to change port to (0: exit): 2


Step 5: Checking out choosen date of the port from the CVS repository

Step 6: Modifying the port
Port: deskutils/linux-sunbird
at : 2005/06/17 22:59:27
Type 'yes' to bring the port to the state of the date above
or 'no' to exit without changing anything. Note, that this only changes
the port, not the installed software! yes or no:yes

The port has been set to the selected version. Install it if you wish.
If you have portupgrade installed, you should run

portsdb -Uu

now, to see the changes in the ports database. In any case

portupgrade -f linux-sunbird

will install the changed port. Note: if you run cvsup, the port
is changed back to the choosen label!

Danach linux-sunbird wieder installiert und alle Termine waren wieder da.

# cd /usr/ports/deskutils/linux-sunbird && make install clean

UPDATE 05.02.2007:

portdowngrade wurde von sysutils in die neue Kategorie ports-mgmt verschoben. portdowngrade kann nun wie folgt installiert werden:

# cd /usr/ports/ports-mgmt/portdowngrade && make install clean
Related Entries:
Gespeicherte Optionen nach OptionsNG konvertieren
Ports-Subversion-Repository spiegeln
sysinstall-Ersatz für neuere FreeBSD-Versionen
Alte FreeBSD-Port Patchdateien aufsplitten
FreeBSD-Portbaum auf Fehler überprüfen
Comments (2)  Permalink

su: not running setuid

Hat man eine neue Jail erstellt und möchte einem wheel-Benutzer mit su zu root-Rechten verhelfen, aber dies mit folgender Meldung verweigert wird:

# su
su: not running setuid

so hat man die Jail auf einer Partition erstellt, die mit der nosuid Option gemountet wurde.

Related Entries:
Gespeicherte Optionen nach OptionsNG konvertieren
Ports-Subversion-Repository spiegeln
sysinstall-Ersatz für neuere FreeBSD-Versionen
Alte FreeBSD-Port Patchdateien aufsplitten
FreeBSD-Portbaum auf Fehler überprüfen
 Permalink

Manpages

Da ich oft auf die Manpages verweise, möchte ich den letzten Befehl der Woche dieses Jahres den Manpages widmen. Die Manpages sind in 9 verschiedene Sections gegliedert.

Section 1: General Commands
Section 2: System Calls
Section 3: Library Functions
Section 4: Kernel Interfaces
Section 5: File Formats
Section 6: Games
Section 7: Miscellaneous Information
Section 8: System Manager's Manual
Section 9: Kernel Developer's Manual

Jede Section besitzt eine Einleitung. Diese kann mit folgendem Befehl aufgerufen werden:

# man <Sectionnummer> intro

Eine Manpage ruft man grundsätzlich wie folgt auf, wobei die Sectionnummer optional ist:

# man <Sectionnummer> <Name der Manpage>

Wählt man eine Manpage, die in verschiedenen Sections vorkommt, jedoch ohne eine Sectionnummer anzugeben, so wird nur die erste gefundene Manpage angezeigt. Gibt man zum Beispiel nur man intro ein, kriegt man nur die Intro-Manpage der ersten Section. Mit der Option -a werden alle gefundenen Seiten nacheinander dargestellt:

# man -a intro

Wird auf eine Manpage verwiesen, so verwendet man üblicherweise folgende Schreibweise: Befehl(Section). fortune(6) bedeutet dementsprechen, dass die Manpage von fortune sich in Section 6 befindet.

Die Manpages sind auch im Internet verfügbar: http://www.freebsd.org/cgi/man.cgi

Folgende Manpages sind immer mal einen Blick wert:

  • rc.conf(5) Übersicht und Beschreibung der rc.conf Systemvariablen
  • make.conf(5) Übersicht und Beschreibung der make.conf Variablen
  • login.conf(5) Übersicht und Beschreibung der login.conf Variablen
  • hier(7) Aufbau der FreeBSD Verzeichnisstruktur
  • tuning(7) Tipps zur Leistungssteigerung eines FreeBSD Systemes
  • ports(7) Hilfe zu den Ports und Beschreibung aller make targets für den Portbaum
  • security(7) Tipps zum Absichern eines FreeBSD Systemes
  • firewall(7) Wie man eine einfache Firewall erstellt
  • build(7) Beschreibung der make targets um ein System zu aktualisieren/erstellen
  • style(9) Richtlinien für Kernelcode

Mehr Informationen zu man natürlich in der Manpage: man(1)

Related Entries:
Gespeicherte Optionen nach OptionsNG konvertieren
Ports-Subversion-Repository spiegeln
sysinstall-Ersatz für neuere FreeBSD-Versionen
Alte FreeBSD-Port Patchdateien aufsplitten
FreeBSD-Portbaum auf Fehler überprüfen
 Permalink

Flashplugin für Firefox auf FreeBSD

Um das Flashplugin für den Firefox benutzen zu können, muss natürlich zuerst der Firefox installiert werden:

# cd /usr/ports/www/firefox && make install clean

Danach den Linuxpluginwrapper installieren:

# cd /usr/ports/www/linuxpluginwrapper && make install clean

Zu guter Letzt kann das Flashplugin installiert werden.

# cd /usr/ports/www/linux-flashplugin6 && make install clean

Danach je nach verwendetem FreeBSD die libmap.conf kopieren.
Auf FreeBSD 4.x:

# cp /usr/local/share/examples/linuxpluginwrapper/libmap.conf-FreeBSD4.x /etc/libmap.conf

Für FreeBSD 5.0 bis 5.3-BETA6 nimmt man libmap.conf-FreeBSD5-current:

# cp /usr/local/share/examples/linuxpluginwrapper/libmap.conf-FreeBSD5-current /etc/libmap.conf

Für FreeBSD 5.3-BETA7 und neuer nimmt man FreeBSD5-stable:

# cp /usr/local/share/examples/linuxpluginwrapper/libmap.conf-FreeBSD5-stable /etc/libmap.conf

Auf einem FreeBSD 6 System nimmt man natürlich libmap.conf-FreeBSD6:

# cp /usr/local/share/examples/linuxpluginwrapper/libmap.conf-FreeBSD6 /etc/libmap.conf

Danach noch einen Symlink erstellen:

# ln -s /usr/X11R6/lib/linux-flashplugin6/libflashplayer.so /usr/X11R6/lib/browser_plugins/libflashplayer.so

Und nach einem Neustart von Firefox sollte das Plugin funktionieren. Ein about:plugins in der Adresszeile des Firefox listet alle aktivierten Plugins auf.

Related Entries:
Gespeicherte Optionen nach OptionsNG konvertieren
Ports-Subversion-Repository spiegeln
sysinstall-Ersatz für neuere FreeBSD-Versionen
Alte FreeBSD-Port Patchdateien aufsplitten
FreeBSD-Portbaum auf Fehler überprüfen
Comments (8)  Permalink

Systemstatistiken auf der Konsole mit systat

Im FreeBSD Basissytem gibt es ein Programm, mit dem man sich ganz einfach Systeminformationen und Statistiken auf der Konsole ausgeben lassen kann.
# systat -<Option>
Folgende Optionen sind möglich:
pigs: Zeigt den Prozess, der den grössten Anteil der CPU konsumiert
icmp: Zeigt Statistiken über empfangene und gesendete ICMP Meldungen
ip: Zeigt Statistiken über empfangene und gesendete IP Pakete
tcp: Zeigt Statistiken über empfangene und gesendete TCP Pakete
iostat: Zeigt Informationen zur CPU Auslastung und IO Aktivitäten der Festplatten
swap: Zeigt Informationen über die Benutzung des Swap Bereiches
vmstat: Zeigt Informationen zur virtuellen Speicherverwaltung
netstat: Zeigt Informationen zu den aktuellen Netzwerkverbindungen
ifstat: Zeigt Informationen zu den Netzwerkschnittstellen

Innerhalb von systat kann auch mit :<Option> die Ansicht gewechselt werden. Mit :q verlässt man systat. Mehr Informationen dazu gibt es wie immer in der Manpage zu systat.
Related Entries:
Gespeicherte Optionen nach OptionsNG konvertieren
Ports-Subversion-Repository spiegeln
sysinstall-Ersatz für neuere FreeBSD-Versionen
Alte FreeBSD-Port Patchdateien aufsplitten
FreeBSD-Portbaum auf Fehler überprüfen
 Permalink

Beastie Menu unter FreeBSD 6.0

In FreeBSD 6.0 wurde der BSD Daemon im Startbildschirm durch einen FreeBSD Schriftzug ersetzt. Dieser kann durch einen der folgenden Einträge in /boot/loader.conf wieder erstetzt werden:

loader_logo="fbsdbw"  # Standard; schwarz/weiss Darstellung des Wortes FreeBSD
loader_logo="beastiebw" # Der FreeBSD 5 Standard; der schwarz/weiss BSD Daemon
loader_logo="beastie" # Mein Standard; farbiger BSD Daemon
loader_logo="none" # Keine Grafik
Quelle: http://www.bsdforums.org/forums/showthread.php?t=36124
Related Entries:
Gespeicherte Optionen nach OptionsNG konvertieren
Ports-Subversion-Repository spiegeln
sysinstall-Ersatz für neuere FreeBSD-Versionen
Alte FreeBSD-Port Patchdateien aufsplitten
FreeBSD-Portbaum auf Fehler überprüfen
 Permalink

FreeBSD Ports richtig deinstallieren

Wenn man einen Port auf FreeBSD deinstallieren möchte, ist es empfehlenswert, diesen mittels pkg_deinstall oder pkg_delete zu entfernen, da so dieser nur entfernt wird, falls keine anderen Programme mehr von ihm abhängig sind. Ein make deinstall im Portverzeichnis achtet nicht auf Abhängigkeiten, was zu Problemen führen kann.

pkg_delete befindet sich bereits in Basissystem. Möchte man einen Port deinstallieren und gleichzeitig auch alle Ports, von denen nur der zu deinstallierende Port abhängig ist, lohnt es sich sysutlis/portupgrade zu installieren. Darin befindet sich pkg_deinstall. Damit können Ports auch aufwärts rekursiv deinstalliert werden. Um also einen Port samt allen nur von ihm gebrauchten Abhängigkeiten zu deinstallieren verwende ich folgenden Befehl:

# pkg_deinstall -R -d -v <Portname>

Die Option -d entfernt alle leeren Verzeichnisse des Portes und mit -v kriegt man ein bisschen mehr Informationen.

Related Entries:
Gespeicherte Optionen nach OptionsNG konvertieren
Ports-Subversion-Repository spiegeln
sysinstall-Ersatz für neuere FreeBSD-Versionen
Alte FreeBSD-Port Patchdateien aufsplitten
FreeBSD-Portbaum auf Fehler überprüfen
Comments (2)  Permalink
Prev Next101-110/125