Ein gutes neues Jahr Euch allen
Oder um es mit den Worten von BSD make zu sagen:
# uname FreeBSD # gmake love gmake: *** No rule to make target `love'. Stop. # make love Not war.
Oder um es mit den Worten von BSD make zu sagen:
# uname FreeBSD # gmake love gmake: *** No rule to make target `love'. Stop. # make love Not war.
Ändert man einen FreeBSD Port, zum Beispiel durch das Aktualisieren auf eine neuere Version, so kann es vorkommen, dass die Port-Patches welche sich im files-Verzeichnis befindenk, nicht mehr angewendet werden können. Dies kann mit make checkpatch geprüft werden:
# make checkpatch ===> Found saved configuration for firefox-3.1.b3,1 ===> Extracting for firefox-3.6.b5,1 => MD5 Checksum OK for firefox-3.6b5.source.tar.bz2. => SHA256 Checksum OK for firefox-3.6b5.source.tar.bz2. ===> firefox-3.6.b5,1 depends on file: /usr/local/bin/perl5.8.9 - found ===> Patching for firefox-3.6.b5,1 ===> firefox-3.6.b5,1 depends on file: /usr/local/bin/perl5.8.9 - found ===> Applying extra patch /usr/home/beat/dev/freebsd-gecko/branches/experimental/www/firefox3-devel/files/libsydney_oss ===> Applying FreeBSD patches for firefox-3.6.b5,1 Ignoring previously applied (or reversed) patch. 1 out of 1 hunks ignored--saving rejects to toolkit/xre/Makefile.in.rej => Patch patch-toolkit_xre_Makefile.in failed to apply cleanly. => Patch(es) patch-build_unix_run-mozilla.sh patch-config_autoconf.mk.in patch-config_mkdepend_Makefile.in patch-configure.in patch-content-xslt-public-txDouble.h patch-db_sqlite3_src_Makefile.in patch-js-src-Makefile.in patch-js-src-config-mkdepend_Makefile.in patch-js-src-config_config.mk patch-js-src-configure.in patch-js-src-jslock.cpp patch-js_src_jsnum.cpp patch-layout_generic_Makefile.in patch-media-libsydneyaudio-include-sydney_audio.h patch-media_liboggz_include_oggz_oggz_off_t_generated.h patch-security-coreconf-FreeBSD.mk patch-security_manager_ssl_src_nsNSSComponent.cpp patch-storage_build_Makefile.in patch-toolkit_mozapps_update_src_updater_updater.cpp applied cleanly. *** Error code 1 Stop in /usr/home/beat/dev/freebsd-gecko/branches/experimental/www/firefox3-devel. *** Error code 1 Stop in /usr/home/beat/dev/freebsd-gecko/branches/experimental/www/firefox3-devel.
Dabei werden die Patch-Dateien nur überprüft ob diese mit den aktuellen Code noch angewendet werden können, ohne den Quellcode jedoch zu verändern. Schlägt ein Patch fehl, kann dieser korrigiert und danach das Ergebnis wieder mit make checkpatch überprüft werden.
Möchte man überprüfen ob ein Port mit einem bereits installierten Port in Konflikt steht, so kann dies vor dem Installieren mit make check-conflicts getestet werden:
# cd /usr/ports/www/seamonkey2 && make check-conflicts ===> seamonkey-2.0.1 conflicts with installed package(s): spidermonkey-1.7.0 They install files into the same place. Please remove them first with pkg_delete(1). *** Error code 1 Stop in /usr/ports/www/seamonkey2
Mit HIlfe von aaphoto lassen sich Fotos auf der Kommandozeile aufbessern, zum Beispiel automatisch die Farben korrigiert. Im FreeBSD Portbaum findet man aaphoto unter graphics/aaphoto:
# cd /usr/ports/graphics/aaphoto && make install clean
Ruft man aaphoto ohne Optionen auf, werden automatisch die Farben des Bildes verbessert und dieses in einer neuen Datei gespeichert:
# ls -l beat.jpg -rw-r--r-- 1 beat wheel 26641 26 Dez 11:04 beat.jpg # aaphoto beat.jpg beat.jpg . . . done # ls -l beat* -rw-r--r-- 1 beat wheel 26641 26 Dez 11:04 beat.jpg -rw-r--r-- 1 beat wheel 8181 26 Dez 11:08 beat_new.jpg
Auch kann das Bild um 90 Grad im Uhrzeigersinn gedreht und um 50% verkleinert werden. Verwendet man zusätzliche Optionen so werden die Farben des Bildes nicht automatisch korrigiert. Mit der -a Option kann die Farbkorrektur wieder aktiviert werden:
# aaphoto -a --rotate90 -r50% beat.jpg beat.jpg . . . done
Mehr Informationen zu aaphoto erhält man mit der -h Option:
# aaphoto -h
Mit Hilfe von mapath kann angezeigt werden in welchen Verzeichnissen man(1) nach einer Manpage sucht:
# manpath /usr/share/man:/usr/local/man:/usr/share/openssl/man:/usr/local/lib/perl5/5.8.9/man:/usr/local/lib/perl5/5.8.9/perl/man
Konfiguriert werden diese Verzeichnisse in der Datei /etc/manpath.config. Möchte man ein weiteres Verzeichnis mit Manpages hinzufügen, so kann dazu zum Beispiel mit OPTIONAL_MANPATH festgelegt werden:
# ls -d /home/beat/man/* /home/beat/man/man1 # echo "OPTIONAL_MANPATH /usr/home/beat/man" >> /etc/manpath.config # manpath /usr/share/man:/usr/local/man:/usr/share/openssl/man:/usr/local/lib/perl5/5.8.9/man:/usr/local/lib/perl5/5.8.9/perl/man:/usr/home/beat/man
Auch kann mit Hilfe der Umgebungsvariable MANPATH die globale Konfiguration überschrieben werden:
# setenv MANPATH /home/beat/man # manpath (Warning: MANPATH environment variable set) /home/beat/man
Auf FreeBSD ist manpath standardmässig im Basissystem vorhanden. Mehr Informationen zu manpath findet man in der Manpage manpath(1).
Mit Hilfe von portmaster könnten installierte Ports aktualisiert werden. Seit der Version 2.12 wird nun auch das Aktualisieren mit Hilfe von Paketen unterstützt. Im FreeBSD Portbaum findet man portmaster unter ports-mgmt/portmaster:
# cd /usr/ports/ports-mgmt/portmaster && make install clean
Mit Hilfe der -PP Option werden die installierten Ports aussschliesslich mit Paketen aktualisiert. Die heruntergeladenen Pakete werden dabei im /usr/ports/packages/portmaster-download/ Verzeichnis gespeichert:
# portmaster -PP pkg_cutleave ===>>> Currently installed version: pkg_cutleaves-20080320 ===>>> Port directory: /usr/ports/ports-mgmt/pkg_cutleaves ===>>> Gathering dependency list for ports-mgmt/pkg_cutleaves from ports ===>>> Starting dependency check ===>>> Dependency check complete for ports-mgmt/pkg_cutleaves ===>>> Starting install for ports-mgmt/pkg_cutleaves <<<=== ===>>> All dependencies are up to date ===>>> Checking package repository for latest available version ===>>> Creating a backup package for old version pkg_cutleaves-20080320 ===>>> Installing package ===>>> Updating dependencies for pkg_cutleaves-20090810 to match installed versions ===>>> Upgrade of pkg_cutleaves-20080320 to pkg_cutleaves-20090810 complete
Möchte man den Server festlegen, von welchem die Pakete heruntergeladen werden, so kann dazu die PACKAGESITE-Umgebungsvariable gesetzt werden. Zum Beispiel in der (t)csh:
# setenv PACKAGESITE http://tinderbox.chruetertee.ch/tb/packages/8-FreeBSD
Verwendet man die -P Option so wird falls vorhanden ein Paket zur Aktualisierung verwendet, wird aber keines gefunden, so wird der Port mit Hilfe des Portbaumes aktualisiert. Im folgenden Beispiel werden alle installierten Ports aktualisiert für welche es eine neuere Version gibt. Falls möglich wird zur Aktualisierung ein Paket verwendet, ist keines vorhanden wir der Port mit Hilfe des Portbaumes kompiliert:
# portmaster -P -a
Findet portmaster ein Paket, welches neuer ist als das Installierte ist, im Portbaum befindet sich allerdings noch eine neuere Version des Portes, kann mit der --packages-if-newer festgelegt werden, dass trotzdem das Paket installiert wird:
# portmaster -P --packages-if-newer nmap
Sollten beim Aktualisieren eines Ports neue Abhängigkeiten für das Kompilieren dieses Portes benötigt werden, können diese mit Hilfe der --packages-build Option als Pakete heruntergeladen und installiert werden.
# portmaster --packages-build screen
Mehr Informationen zu portmaster findet man in der Manpage portmaster(8). Informationen über die zukünftigen Möglichkeiten von portmaster und wie man die Entwicklung von portmaster unterstützen kann, findet man auf der "portmaster funding proposal"-Webseite.
Mit Hilfe von x86info werden Informationen zum Cache, den unterstützten CPU-Funktionen, sowie den Registern und allgemeine Informationen zu den vorhandenen Prozessoren ausgelesen. Im FreeBSD-Portbaum findet man x86info unter sysutils/x86info:
# cd /usr/ports/sysutils/x86info && make install clean
Ruft man x86info mit der -a Option auf, werden alle verfürbaren Informationen zu den vorhandenen Prozessoren angezeigt:
# x86info -a x86info v1.25. Dave Jones 2001-2009 Feedback to <davej@redhat.com>. Found 2 CPUs MP Table: # APIC ID Version State Family Model Step Flags # 0 0x14 BSP, usable 6 7 6 0xbfebfbff # 1 0x14 AP, usable 6 7 6 0xbfebfbff -------------------------------------------------------------------------- CPU #1 EFamily: 0 EModel: 1 Family: 6 Model: 23 Stepping: 6 CPU Model: Core 2 Duo P8600 Processor name string: Intel(R) Core(TM)2 Duo CPU T9300 @ 2.50GHz Type: 0 (Original OEM) Brand: 0 (Unsupported) Number of cores per physical package=1 Number of logical processors per socket=2 Number of logical processors per core=2 APIC ID: 0x1 Package: 0 Core: 0 SMT ID 1 eax in: 0x00000000, eax = 0000000a ebx = 756e6547 ecx = 6c65746e edx = 49656e69 eax in: 0x00000001, eax = 00010676 ebx = 01020800 ecx = 0008e3bd edx = bfebfbff eax in: 0x00000002, eax = 05b0b101 ebx = 005657f0 ecx = 00000000 edx = 2cb4304e eax in: 0x00000003, eax = 00000000 ebx = 00000000 ecx = 00000000 edx = 00000000 eax in: 0x00000004, eax = 04000121 ebx = 01c0003f ecx = 0000003f edx = 00000001 eax in: 0x00000005, eax = 00000040 ebx = 00000040 ecx = 00000003 edx = 03122220 eax in: 0x00000006, eax = 00000003 ebx = 00000002 ecx = 00000001 edx = 00000000 eax in: 0x00000007, eax = 00000000 ebx = 00000000 ecx = 00000000 edx = 00000000 eax in: 0x00000008, eax = 00000400 ebx = 00000000 ecx = 00000000 edx = 00000000 eax in: 0x00000009, eax = 00000000 ebx = 00000000 ecx = 00000000 edx = 00000000 eax in: 0x0000000a, eax = 07280202 ebx = 00000000 ecx = 00000000 edx = 00000503 eax in: 0x80000000, eax = 80000008 ebx = 00000000 ecx = 00000000 edx = 00000000 eax in: 0x80000001, eax = 00000000 ebx = 00000000 ecx = 00000001 edx = 20100000 eax in: 0x80000002, eax = 65746e49 ebx = 2952286c ecx = 726f4320 edx = 4d542865 eax in: 0x80000003, eax = 44203229 ebx = 43206f75 ecx = 20205550 edx = 54202020 eax in: 0x80000004, eax = 30303339 ebx = 20402020 ecx = 30352e32 edx = 007a4847 eax in: 0x80000005, eax = 00000000 ebx = 00000000 ecx = 00000000 edx = 00000000 eax in: 0x80000006, eax = 00000000 ebx = 00000000 ecx = 18008040 edx = 00000000 eax in: 0x80000007, eax = 00000000 ebx = 00000000 ecx = 00000000 edx = 00000000 eax in: 0x80000008, eax = 00003024 ebx = 00000000 ecx = 00000000 edx = 00000000 Cache info L1 Instruction cache: 32KB, 8-way associative. 64 byte line size. L1 Data cache: 32KB, 8-way associative. 64 byte line size. L2 cache: 6MB, 24-way set associative, 64-byte line size. TLB info Instruction TLB: 4x 4MB page entries, or 8x 2MB pages entries, 4-way associative Instruction TLB: 4K pages, 4-way associative, 128 entries. Data TLB: 4MB pages, 4-way associative, 32 entries L1 Data TLB: 4KB pages, 4-way set associative, 16 entries L1 Data TLB: 4MB pages, 4-way set associative, 16 entries Data TLB: 4K pages, 4-way associative, 256 entries. 64 byte prefetching. Feature flags: fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflsh ds acpi mmx fxsr sse sse2 ss ht tm pbe Extended feature flags: sse3 [2] monitor ds-cpl vmx est tm2 ssse3 cx16 xTPR [15] [19] 2.50GHz processor (estimate). -------------------------------------------------------------------------- CPU #2 EFamily: 0 EModel: 1 Family: 6 Model: 23 Stepping: 6 CPU Model: Core 2 Duo P8600 Processor name string: Intel(R) Core(TM)2 Duo CPU T9300 @ 2.50GHz Type: 0 (Original OEM) Brand: 0 (Unsupported) Number of cores per physical package=1 Number of logical processors per socket=2 Number of logical processors per core=2 APIC ID: 0x1 Package: 0 Core: 0 SMT ID 1 eax in: 0x00000000, eax = 0000000a ebx = 756e6547 ecx = 6c65746e edx = 49656e69 eax in: 0x00000001, eax = 00010676 ebx = 01020800 ecx = 0008e3bd edx = bfebfbff eax in: 0x00000002, eax = 05b0b101 ebx = 005657f0 ecx = 00000000 edx = 2cb4304e eax in: 0x00000003, eax = 00000000 ebx = 00000000 ecx = 00000000 edx = 00000000 eax in: 0x00000004, eax = 04000121 ebx = 01c0003f ecx = 0000003f edx = 00000001 eax in: 0x00000005, eax = 00000040 ebx = 00000040 ecx = 00000003 edx = 03122220 eax in: 0x00000006, eax = 00000003 ebx = 00000002 ecx = 00000001 edx = 00000000 eax in: 0x00000007, eax = 00000000 ebx = 00000000 ecx = 00000000 edx = 00000000 eax in: 0x00000008, eax = 00000400 ebx = 00000000 ecx = 00000000 edx = 00000000 eax in: 0x00000009, eax = 00000000 ebx = 00000000 ecx = 00000000 edx = 00000000 eax in: 0x0000000a, eax = 07280202 ebx = 00000000 ecx = 00000000 edx = 00000503 eax in: 0x80000000, eax = 80000008 ebx = 00000000 ecx = 00000000 edx = 00000000 eax in: 0x80000001, eax = 00000000 ebx = 00000000 ecx = 00000001 edx = 20100000 eax in: 0x80000002, eax = 65746e49 ebx = 2952286c ecx = 726f4320 edx = 4d542865 eax in: 0x80000003, eax = 44203229 ebx = 43206f75 ecx = 20205550 edx = 54202020 eax in: 0x80000004, eax = 30303339 ebx = 20402020 ecx = 30352e32 edx = 007a4847 eax in: 0x80000005, eax = 00000000 ebx = 00000000 ecx = 00000000 edx = 00000000 eax in: 0x80000006, eax = 00000000 ebx = 00000000 ecx = 18008040 edx = 00000000 eax in: 0x80000007, eax = 00000000 ebx = 00000000 ecx = 00000000 edx = 00000000 eax in: 0x80000008, eax = 00003024 ebx = 00000000 ecx = 00000000 edx = 00000000 Cache info L1 Instruction cache: 32KB, 8-way associative. 64 byte line size. L1 Data cache: 32KB, 8-way associative. 64 byte line size. L2 cache: 6MB, 24-way set associative, 64-byte line size. TLB info Instruction TLB: 4x 4MB page entries, or 8x 2MB pages entries, 4-way associative Instruction TLB: 4K pages, 4-way associative, 128 entries. Data TLB: 4MB pages, 4-way associative, 32 entries L1 Data TLB: 4KB pages, 4-way set associative, 16 entries L1 Data TLB: 4MB pages, 4-way set associative, 16 entries Data TLB: 4K pages, 4-way associative, 256 entries. 64 byte prefetching. Feature flags: fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflsh ds acpi mmx fxsr sse sse2 ss ht tm pbe Extended feature flags: sse3 [2] monitor ds-cpl vmx est tm2 ssse3 cx16 xTPR [15] [19] 2.50GHz processor (estimate).
Mehr Informationen zu x86info findet man in der Manpage x86info(1).