# [gelöst] ecompressdir deaktivieren

## Christian99

Hallo, ich wollte mal wissen, ob es möglich ist ecompressdir zu deaktivieren? Hintergrund ist, ich bin vor kurzem auf btrfs umgestiegen und habe da die kompression aktiviert. Deswegen, finde ich, ist es nicht mehr nötig (für mich, und ja, ich weiß dass ecompressdir nen besseren Algorithmus verwendet).

Deswegen die frage: geht das?

Schöen Grüße

ChristianLast edited by Christian99 on Sun Jun 03, 2012 8:54 pm; edited 1 time in total

----------

## mv

```
PORTAGE_COMPRESS="true"
```

(statt das "true"-Programm redundant aufzurufen kann man vielleicht auch einen leeren String nehmen - nicht getestet).

----------

## Atom2

 *mv wrote:*   

> 
> 
> ```
> PORTAGE_COMPRESS="true"
> ```
> ...

 

Ich denke eigentlich nicht, daß durch 

```
PORTAGE_COMPRESS="true"
```

 das Programm true aufgerufen wird. Vielmehr ist das wohl eine Zuweisung der Zeichenkette "true" (ohne die Anführungszeichen) an die (shell) Variable PORTAGE_COMPRESS. Dies unter der Annahme, daß die Zeile in einem shell Script so vorkommt (und von /bin/sh oder /bin/bash interpretiert wird) oder auf der Kommandozeile (unter /bin/sh oder /bin/bash) eingegeben wird. Ident im Ergebnis dazu ist übrigens auch 

```
PORTAGE_COMPRESS=true
```

Das Programm true würde allerdings in einem Shell Script (/bin/bash oder /bin/sh) bzw. auf der Kommandozeile bei

```
PORTAGE_COMPRESS=`true`
```

 oder (in der bash) auch bei 

```
PORTAGE_COMPRESS=$(true)
```

 aufgerufen werden. In beiden Fällen würde in der Folge die Ausgabe von stdout der (shell) Variable PORTAGE_COMPRESS zugewiesen werden. Die Variable wird dabei entweder neu angelegt (wenn noch nicht vorhanden) oder der alte Wert wird überschrieben.

Da true aber nur einen exit code von 0 (aber keine Ausgabe auf stdout) liefert, wäre das im übrigen ident mit der Zuweisung einer Leerzeichenkette an PORTAGE_COMPRESS wie folgt:

```
PORTAGE_COMPRESS=""
```

In den letzten drei Fällen existiert danach im Ergebnis aber eine (shell) Variable namens PORTAGE_COMPRESS mit leerem Inhalt.

----------

## mv

 *Atom2 wrote:*   

> Ich denke eigentlich nicht, daß durch [...] das Programm true aufgerufen wird.

 

Ich bin mir nicht sicher, ob Du Dich gerade lustig machst, oder ob es wirklich Missverständnisse gibt. Selbstverständlich ist es zunächst mal nur eine Zuweisung; die Variable wird aber von portage als  das Shell-Kommandos interpretiert, das es zur Kompression benutzt. Und ob "" die selbe Wirkung hat wie "true", hängt davon ab, ob portage den Leerstring extra behandelt, was ich jetzt nicht überprüft habe.

----------

## Atom2

 *mv wrote:*   

> Ich bin mir nicht sicher, ob Du Dich gerade lustig machst, oder ob es wirklich Missverständnisse gibt.

 

Also da liegt in der Tat ein Mißverständnis vor und lustig machen wollte ich mich auch nicht. Ich habe die Zuweisung nicht im Zusammenhang mit der make.conf gesehen sondern isoliert betrachtet, was bei mir zusammen mit Deinem Kommentar zum Eindruck geführt hat, daß durch die angeführte Zuweisung das Programm true (redundant) aufgerufen werden sollte.

Das hat sich aber jetzt durch Deine Erklärung (und den damit gegebenen Zusammenhang mit make.conf) geklärt. Und in diesem Zusammenhang ist es offenbar so, daß ein leerer String zu keiner Kompression führt und das redundante ausführen von true (bzw. nahezu dem gesamten ecompress script) verhindert. Unten dazu der relevante Teil von /usr/lib/portage/bin/ebuild-helpers/ecompress:

```
#!/bin/bash

# Copyright 1999-2010 Gentoo Foundation

# Distributed under the terms of the GNU General Public License v2

source "${PORTAGE_BIN_PATH:-/usr/lib/portage/bin}"/isolated-functions.sh

if [[ -z $1 ]] ; then

        helpers_die "${0##*/}: at least one argument needed"

        exit 1

fi

# setup compression stuff

PORTAGE_COMPRESS=${PORTAGE_COMPRESS-bzip2}

[[ -z ${PORTAGE_COMPRESS} ]] && exit 0

...

```

PORTAGE_COMPRESS Variable nicht gesetzt - defaults to bzip2

PORTAGE_COMPRESS Variable auf Leerstring ("") gesetzt - exit 0 ziemlich am Beginn des Scripts

PORTAGE_COMPRESS Variable auf "true" gesetzt - durchlaufen des ecompress Scripts

----------

## Christian99

danke euch, werd ich mal ausprobieren, wenn ich wieder daheim bin!

----------

## Christian99

hab jetz PORTAGE_COMPRESS="" funktioniert prima! danke nochmal

----------

