# Unbedacht Paket gelöscht - Portage streikt [nicht gelöst]

## HymiR

Servus Leute!

Ich hab seit langer Zeit mal wieder gesynct und ein paar block-messages beim Updaten bekommen.

Leider war ich in meiner Eile scheinbar blöd genug, um bei den Nachrichten

```
>=sys-apps/util-linux-2.13_pre (is blocking sys-process/schedutils-1.5.0)

sys-process/schedutils (is blocking sys-apps/util-linux-2.13-r2)

<dev-libs/boost-1.34.0 (is blocking dev-util/boost-build-1.34.1)
```

kurzer Hand die blockierenden Pakete zu eliminieren.

(gilt nur für die letzten beiden block-nachrichten)

Ich bin mir nicht sicher welches paket dafür verantwortlich ist, aber seit dieser Aktion bekomme ich bei jedem emerge

(egal welches Paket) folgende Fehlermeldung:

```
/usr/lib/portage/bin/ebuild.sh: line 1492: touch: command not found

 * 

 * ERROR: x11-misc/gcolor2-0.4-r2 failed.

 * Call stack:

 *               ebuild.sh, line 1641:  Called die

 * The specific snippet of code:

 *      preprocess_ebuild_env || \

 *              die "error processing environment"

 *  The die message:

 *   error processing environment

 * 

 * If you need support, post the topmost build error, and the call stack if relevant.

 * A complete build log is located at '/var/tmp/portage/x11-misc/gcolor2-0.4-r2/temp/build.log'.

 * The ebuild environment file is located at '/var/tmp/portage/x11-misc/gcolor2-0.4-r2/temp/environment'.

 * 

 * Messages for package x11-misc/gcolor2-0.4-r2:

 * 

 * ERROR: x11-misc/gcolor2-0.4-r2 failed.

 * Call stack:

 *               ebuild.sh, line 1641:  Called die

 * The specific snippet of code:

 *      preprocess_ebuild_env || \

 *              die "error processing environment"

 *  The die message:

 *   error processing environment

```

(das Kommando "touch" gibt es serwohl noch...)

Keine Ahnung was tun... in Letzter Konsequenz wäre es hilfreich wenn mir einer die Ausgabe von 

```
equery files [package]
```

schicken könnte... so könnte ich versuchen, den ganzen Kram von einem stage3 zu kopieren....

Wäre froh über jeden Tipp, Danke im Voraus!!

----------

## nikaya

touch gehört zu den coreutils

```
equery b touch

[ Searching for file(s) touch in *... ]

sys-apps/coreutils-6.10-r1 (/bin/touch)

sys-apps/coreutils-6.10-r1 (/usr/bin/touch -> /bin/touch)

```

----------

## HymiR

Wer kann mir hier weiterhelfen? - Ich kenne ja nicht mal das genaue Problem, das ist ja gerade das Problem;-).

Vielleicht hat das ganze ja überhaupt nix zu tun mit den oben genannten Paketen.

Hat vielleicht jemand Hinweise was ich prüfen könnte.

Ehrlich gesagt sagt mir die Fehlermeldung lediglich, dass Portage bei *jedem* Paket scheitert.

Ist es womöglich nur ein Konfigurationsproblem?

----------

## jkoerner

Moin,

die erste Antwort zu deinem Problem zeigt doch wo der Hase im Pfeffer liegt, aber ich will dir das noch mal zeigen:

```
/usr/lib/portage/bin/ebuild.sh: line 1492: touch: command not found
```

Mit dem Befehl 'touch' werden Dateien erzeugt, falls dir das nicht geläufig sein sollte.

Also musst du das empfohlene Paket, wie auch immer, wieder auf dein System bringen.

MfG  Jens

----------

## Max Steel

In diesem Thread: Python deinstalliert -> emerge kaputt den Lösungsweg Stigmatas beachten.

Da wo von python die Rede ist einfach coreutils dafür einsetzen, dann sollte es wieder funktionieren.

Eventuell musst du vor dem quickpkg Befehl ein emerge -a perl libperl anschmeißen.

Den hab ich mir mal gebookmarked für den Fall das mir auch sowas passiert.

----------

## flash49

Wenn du zufällig busybox auf deinem system hast dann solltest du alle Basisprogamme dadurch erstezen können:

z.B. für touch

```
cd /bin

ln -s busybox touch
```

Wenn du busybox direkt ausführst bekommst du eine Liste aller Kommandos, die busybox ersetzen kann.

----------

## HymiR

Servus,

tschuldigung, hab in letzter Zeit keine Zeit gehabt, um ans inet zu gehn.

Danke für den Lösungsvorschlag, Max Steel, ich hab ihn ausprobiert, leider hats aber nix gebracht.

Bin das Verfahren mit coreutils, portage und python durchgegangen - leider ohne Erfolg.

Das gleiche Prob. besteht immer noch. (Auch unmerge - Befehle sind davon betroffen.)

Ich werd mir das Ganze inzwischen nochmal ganz genau in der emerge.sh anschaun.

Hat vielleicht sonst noch wer eine Idee?

Bis dahin Danke für die Mühen:-)

Gruß, Hymir!

----------

## HymiR

Also ich hab jetzt versucht, einfach in dem Verzeichis '/usr/lib/portage/bin/'

einen Symlink auf /bin/touch zu erstellen - hat nix gebracht.

Ich kapier das einfach nicht: der Befehl touch funkt ganz normal in der Kommandozeile, warum meint er, dann:

'touch: command not found'?

Kann ja nur bedeuten, dass portage vielleicht eigene Umgebungsvariablen verwendet...

Falls das so ist, wo sind die festgelegt?

----------

## franzf

 *HymiR wrote:*   

> Kann ja nur bedeuten, dass portage vielleicht eigene Umgebungsvariablen verwendet...
> 
> Falls das so ist, wo sind die festgelegt?

 

Kannst ja mal versuchen

```
$ python

>>> import os

>>> print os.environ['PATH']
```

und hier posten.

----------

## HymiR

Servus,

hier die Ausgabe:

```
>>> print os.environ['PATH']

/usr/local/bin:/usr/bin:/bin:/opt/bin:/usr/i686-pc-linux-gnu/gcc-bin/4.1.2:/home/hymir/arch/PROGRAMME/jdk1.6.0_01/bin:/home/hymir/bin

```

Derweil hab ich das Problem temporär gelöst, in dem ich in ebuild.sh statt touch '/bin/touch' hineningeschrieben habe.

So funkt es wenigstens.

Eine konventionelle Lösung würde mich dennoch interessieren.

Danke im Voraus.

----------

## schmidicom

Kann es sein das bei deinem /bin/touch die Berechtigungen verändert wurden, so das es unter bestimten usern nicht mehr als Ausführbar gilt?

Ich bin mir nicht sicher aber portage hat ja einen eigenen user und zu irgendetwas wird der ja gebraucht.

Das ist mir mal passiert und dann hab ich mich gewundert warum manche Programme nicht mehr asugeführt werden können  :Laughing: 

```
slinux ~ # ls -l /bin/touch

-rwxr-xr-x 1 root root 43416 26. Feb 17:48 /bin/touch
```

----------

## Klaus Meier

Hatte ich so ähnlich. Du musst emerge -1 coreutils machen. Dann geht es durch. Touch war früher separat und ist jetzt in den Coreutils drin. Und zum mergen der Coreutils brauchst du es nicht.

----------

