Grundsätzlich machst du das via ebuild. Das ist das low-level-emerge ;)
Und zwar mit dem "digest" Kommando:
|
Quellcode
|
1
|
# ebuild /path/to/ebuild.file digest
|
A - B - E - R !!! Du hast Gentoo und kannst dein System nach deinem Geschmack super-fein adjustieren. Dazu gehört auch das du bei dem was du tun willst auch unterstützt wirst.
Das Zauberwort hier heißt: "Overlay"!
Was ist ein Overlay? Einfach ein Portage-Tree, der sich "über" den offiziellen Portage-Tree "darüberlegt" und diesen erweitert. Es gibt einen Haufen davon im Netz zu finden (bsp. sunrise, desktop-xeffects, ...).
Du kannst natürlich auch deinen kleinen, süssen schuckeligen selbst anlegen.
Ich habe da bei mir /usr/local/portage (ist AFAIK auch so gedacht).
Ändere deine /etc/make.conf und trage dort hinein:
|
Quellcode
|
1
2
3
|
...
PORTDIR_OVERLAY="/usr/local/portage"
...
|
Dann erzeugst du genauso wie im /usr/portage die Struktur zu deinem ebuild. Du kopierst alle nötigen Dateien mit (im "files" Unterverzeichnis befinden sich die Patches):
|
Quellcode
|
1
2
|
# mkdir -p /usr/local/portage/net-misc/mDNSResponder/
# cp -R /usr/portage/net-misc/mDNSResponder/files /usr/local/portage/net-misc/mDNSResponder/
|
Jetz kommt dein ebuild file. Ich nehme da mal eines der alten her ...
|
Quellcode
|
1
|
# cp /usr/portage/net-misc/mDNSResponder/mDNSResponder-107.6-r5.ebuild /usr/local/portage/net-misc/mDNSResponder/
|
Nun braucht das Ding noch einen hübschen Namen ...
|
Quellcode
|
1
|
# mv /usr/local/portage/net-misc/mDNSResponder/mDNSResponder-107.6-r5.ebuild /usr/local/portage/net-misc/mDNSResponder/mDNSResponder-107.6_p9999.ebuild
|
Achtung: die Suffixe "_pXXX", "-rXXX", "_beta" usw. haben Bedeutung! _pXXX heißt ganz einfach "Patchlevel XXX" ... und passt mal so, denke ich.
Jetzt gibt es noch einen kleinen Hacken: die SRC_URI im ebuild bei mDNSResponder lädt eine Datei, die sich vom ebuild-Namen ableitet .... wir müssen im ebuild die SRC_URI anpassen. Die4 sollte dann so aussehen:
|
Quellcode
|
1
|
SRC_URI="http://www.opensource.apple.com/darwinsource/tarballs/other/mDNSResponder-107.6.tar.gz"
|
lädt jedenfalls die 107.g version ...
Tia. Jetzt ein
|
Quellcode
|
1
2
|
# ebuild /usr/local/portage/net-misc/mDNSResponder/mDNSResponder-107.6_p9999.ebuild digest
>>> Creating Manifest for /usr/local/portage/net-misc/mDNSResponder
|
damit geht dann ein:
|
Quellcode
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
|
# emerge -avuDN =net-misc/mDNSResponder-107.6_p9999
These are the packages that would be merged, in order:
Calculating dependencies... done!
[ebuild N ] net-misc/mDNSResponder-107.6_p9999 USE="-debug -doc -java" 0 kB [1]
[blocks B ] net-dns/avahi (is blocking net-misc/mDNSResponder-107.6_p9999)
[blocks B ] net-misc/mDNSResponder (is blocking net-dns/avahi-0.6.22-r1)
Total: 1 package (1 new, 2 blocks), Size of downloads: 0 kB
Portage tree and overlays:
[0] /usr/portage
[1] /usr/local/portage
!!! Error: The above package list contains packages which cannot be installed
!!! at the same time on the same system.
For more information about Blocked Packages, please refer to the following
section of the Gentoo Linux x86 Handbook (architecture is irrelevant):
http://www.gentoo.org/doc/en/handbook/handbook-x86.xml?full=1#blocked
|
Okeeee ... ich habe da einen Blocker,w eil ich mich mit avahi spiele ... na klar ... das ist aber mein Problem.
Wichtig ist das du siehst
|
Quellcode
|
1
2
3
4
5
|
....
[ebuild N ] net-misc/mDNSResponder-107.6_p9999 USE="-debug -doc -java" 0 kB [1]
...
[1] /usr/local/portage
...
|
Das ist DEIN ebuild! Und wird beim nächsten emerge --sync NICHT überschrieben!
Klar? ;)