# emerge mit ROOT=""

## Christian99

Hallo,

ich wollte mal ein paar benchmarks machen abhängig vom compiler. Toll wäre es, wenn ich die Sachen mit emerge installieren könnte.

Es gibt ja die ROOT="" enviroment variable, ich bin mir nur nicht sicher, ob die das macht, was ich will...

Wenn ich zum Beispiel "ROOT="~/bench/gcc-4.5" emerge ffmpeg" mache, wird dann mein normal installiertes ffmpeg deinstalliert, oder wird das im neuen ROOT in irgendeiner weise von portage überwacht?

Schöne Grüße

Christian

----------

## arfe

Was willst Du denn machen? Einen anderen Compiler nehmen?

----------

## Christian99

ja, genau. (ich weiß, dafür muss ich noch die CC/CXX varable setzen) außerdem möchte ich die verschiedenen build separat im homeverzeichnis installiert haben. deswegen möchte ich wissen, wenn ich die ROOT variable verwende, ob dann normal installierte builds deinstallier werden. weil normalerweise, wenn man ein paket neu installiert, kommt ja am schluss sowas wie removing already installed version oder so ähnlich.

----------

## mv

Das, was Du willst, geht nicht mit ROOT="". Du willst so etwas wie prefix-portage, wo Du Dein Ziel mit EPRFIX="$HOME" erreichen kannst. Dazu musst Du allerdings erst ein prefix-portage aufsetzen. Ich habe das noch nie gemacht und kenne auch keine Anleitung dazu, wie man das mit minimalem Aufwand erreicht: Die normale Anleitung geht davon aus, dass Du auch Dein halbes @system in prefix installierst, aber das brauchst Du natürlich nicht: Du brauchst dort eigentlich nur die Portage-eigenen Directories wie var/db, var/lib/portage, etc/portage.

Falls Du Dich durcharbeitest, wäre es nett, wenn Du irgendwo (ggf. hier) ein HOWTO hinterlässt   :Wink: 

----------

## firefly

oder mach es halt per hand, da hast du dann die volle kontrolle.

Wenn du die gleichen features aktiviert haben möchtest, wie portage beim übersetzen diese aktiviert, dann hohl dir doch einfach die configure zeile aus den build log.

Das einzige was du daran anpassen musst ist halt den --prefix part und vorher durch setzen von CC/CXX den entsprechenden compiler

----------

## Christian99

DAnke für die Tipps. Ich hab es einfach mal mit ROOT="..." ausprobiert, und ich muss sagen, er macht genau das was er soll. momentan baut er gerade 4xffmpeg mit unterschiedlichen comilerflags in unterschiedlichen verzeichnissen. mit --config-root="..." kann man dann auch noch verschiedene make.confs verwenden.

portage erkennt, wenn man ROOT setzt und deinstalliert dann nicht paktet im normalen ROOT="/".

----------

## mv

 *Christian99 wrote:*   

> Ich hab es einfach mal mit ROOT="..." ausprobiert, und ich muss sagen, er macht genau das was er soll.

 

Höchstens auf den ersten Blick: Wenn ffmpeg z.B. auf /usr/share/... zugreift oder eine Plugins (mit absolutem Pfad) lädt, wird es eben auf die Dateien in Deinem Hauptsystem benutzen und nicht auf die von Dir mit ROOT=... installierten. Dazu hätte ffmpeg bereits zur configure-Phase mit passenden Pfaden aufgerufen werden müssen, was bei ROOT="..." nicht passiert.

----------

## Christian99

hm, naja, das macht doch nix. ich will ja nur ffmpeg laufen lassen und die Zeit messen und nicht ein eigenständiges system damit aufsetzen. auf libs die er dynamisch linkt kann ich ja auch installieren und dann über LD_LIBRARY_PATH die dann verwenden. die die ich nicht zusätzlich installiere werden dann vom Basissystem genommen. für benchmarking sollte doch das ok sein?

----------

## Treborius

 *Christian99 wrote:*   

> hm, naja, das macht doch nix. ich will ja nur ffmpeg laufen lassen und die Zeit messen und nicht ein eigenständiges system damit aufsetzen. auf libs die er dynamisch linkt kann ich ja auch installieren und dann über LD_LIBRARY_PATH die dann verwenden. die die ich nicht zusätzlich installiere werden dann vom Basissystem genommen. für benchmarking sollte doch das ok sein?

 

mit genügend platz auf der hd kannst du doch einfach verschiedene chroots aufsetzten

dann das aktuelle system reinkopieren

(oder halt nur alle dynamischen libs mit reinkopieren, was du im quote mit LD_LIBRARY_PATH erreichen willst)

chroot

neue version von ffmpeg emergen

fertig

----------

## Christian99

ja, aber ist das denn für das was ich machen will nötig? Ich persönlich bin momentan so eigentlich zufrieden.

Ist das nicht ausreichend, wenn ich zb mit den verschiedenen ffmpegs die zeit messen will um einen film zu encodieren?

----------

