Sie sind nicht angemeldet.

1

19.06.2008, 21:20

Verständnis Frage zur Manifest

Hallo Leute,

ich habe mir ein Ebuild gepastelt das mir die Abhängikeit von mDNSResponder verhindert wenn ich die kdelibs installieren möchte, kdelibs benötige ich zur Zeit nur wegen easyFTP (andere Stürzen bei mir immer ab) und quanta. Es ist natürlich nicht zu verhindern das wenn ich ein emerge --sync durchführe das alte ebuild wieder bekomme und somit auch die alte Version des Manifest. Deswegen möchte ich mir ein Script basteln das mir das ebuild Automatisch Modifiziert und auch das dazugehörige Manifest. Leider weiß ich nicht wie ich die Prüfsummen erstellen lassen kann. Wenn ich mir die Manifest ansehe wird mir klar wie diese aufgebaut ist.

Quellcode

1
Ebuild name (Name des ebuilds) größe (Speichergröße) RMD160 (Prüfsumme) SHA1 (Prüfsumme) SHA256 (Prüfsumme) 


Die größe zu ermitteln ist nicht schwer, aber wie sieht es mit den Prüfsummen aus?
Gibt es ein Tool, das mir die Prüfsumme Anezigt wie bei md5sum?

also für RMD160, SHA1, SHA256.

Wie es zu diesem Ebuild gekommen ist

Danke für eure Hilfe.
knasan

- Bug oder Feature, das darf man sich hier aussuchen. -

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »knasan« (20.06.2008, 20:32)


2

20.06.2008, 08:56

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? ;)
http://www.dyle.org
IM-Account (Jabber!) sind auf meiner HP ...
There is no place like /home

http://www.gentooforum.de
http://www.gentoofreunde.org

<div>how to annoy a web developer?</span>

3

20.06.2008, 19:38

@dyle

Super, danke.
Ich glaube, das ich damit jetzt etwas spielen werde und dann wird dies schon. Also kann ich mir das script sparen. Nur jetzt frag ich micht, ich verwende ein Overlay. pro-audio, dies benötige ich, für lmms.
Seit der neuen Version legt layman dies auch unter /usr/local/portage/layman ab.
Muss ich da auch noch etwas beachten?
knasan

- Bug oder Feature, das darf man sich hier aussuchen. -

4

20.06.2008, 20:06

Seit der neuen Version legt layman dies auch unter /usr/local/portage/layman ab.
Muss ich da auch noch etwas beachten?



Nee eigentlich nicht. Du hast ja letztendlich auch 2 Einträge in Deiner make.conf für die Overlays.
Für Layman

Zitat

source /usr/portage/local/layman/make.conf


und für Dein eigenes Overlay:

Zitat

PORTDIR_OVERLAY="/usr/portage/local/


Pfade können natürlich abweichen, je nachdem wo Du das Overlay hinlegen möchtest.

Viele Grüße

5

20.06.2008, 20:33

Vielen Vielen Dank euch zwei,

es war einfacher als ich gedacht hatte.
Es funktioniert geanu so wie ich es wollte.

@dyle
Super Anleitung, konnte ich an meiner kdelibs sofort testen, denn diese war die Ursache das mDNSResponder emerged wurde, was ich ja nicht haben wollte.


Perfekt :-)

Gruß
knasan

- Bug oder Feature, das darf man sich hier aussuchen. -