# Stetiges Downgrade auf von ~arch auf arch

## McEnroe

Ich bin bald für ein Jahr weg. In der Zeit kann ich mein Gentoosystem leider nicht warten. Zur erhöhten Stabilität und um nicht gleich letzte Alpha-Baselayouts zu ziehen oder sonst irgendwelche Pakete die zentrale Organe des Systems destabilisieren könnten will ich eine stetiges Downgrade auf die stabilen Versionen machen.

Und zwar dachte ich daran alle aktuell installierten ~arch Packete in /etc/portage/package.keywords reinzuschreiben und 'ACCEPT_KEYWORDS="~x86"' aus der make.conf zu entfernen.

Wie kriege ich das automatisiert hin?

Was für Probleme könnten auftauchen?

----------

## Finswimmer

Probleme sollten keine auftreten, da das jetzige System läuft und du nach dem Stichtag nur noch Stable Software installierst.

Nen Script kann ich dir nicht geben, aber du kannst dir mit qlist -IC alle Pakete ausgeben lassen, die überführst du dann nach equery w $name, darauf dann ein grep nach ~arch, ist das erfolgreich den Namen per Sed rausschneiden und ein = vornedran setzen und in eine Datei schreiben.

Probleme wird es nur mit Overlays geben. Und es wird seine Zeit dauern, denn equery w ist nicht schnell.

Tobi

----------

## musv

Probleme, die beim späteren Updaten auftreten könne, wenn du weg bist:

Du kannst Dir damit Dein System zerschießen und bräuchtest dann eventuell einen ziemlich langen Arm, um den Reset-Knopf betätigen bzw. eine Rescue-CD einlegen zu können.

Ich war auch schon 2 Mal für längere Zeit weg (jeweils mehr als ein halbes Jahr), wo mein Rechner bei 'nem Kumpel untergestellt war, sodaß ich jederzeit an meine Daten rankam. 

Beim ersten Mal hab ich dabei noch die typische Gentoo-Update-Wut gehabt, was zur Folge hatte, daß ich mein System 2 mal abgeschossen hatte, was ich ohne Hilfe vor Ort auch nicht mehr hinbekam. Das Problem sind meist nicht die ~x86-Pakete, die Dir das System zerschießen sondern die Configdateien, die du eventuell versehentlich mit den Default-Configs überschreibst. 

Beim 2. Mal lief der Rechner dann ca. 200 Tage zuverlässig durch ohne Absturz und ohne Probleme (und ohne Updates).

Mein Tip daher:

Vergiß die Umstellung auf x86. Damit schaffst du Dir erstmal nur einen Haufen unnötige Arbeit. Bring das System einfach dazu, daß alles läuft, was du brauchst (ftp, nfs, apache, mysql,...). Stell die Kiste in die Ecke und laß sie laufen. Vergiß die Wartung während der Zeit, wo du weg bist, und laß die Kiste hier in Ruhe und ungestört ihre Arbeit machen. Selbst wenn du erst in einem Jahr wiederkommst, hast du dann immer noch ein aktuelleres System als normale Debian-Systeme jetzt. Glaub mir, der Rechner überlebt das.  :Smile: 

----------

## McEnroe

 *Finswimmer wrote:*   

> Probleme sollten keine auftreten, da das jetzige System läuft und du nach dem Stichtag nur noch Stable Software installierst.
> 
> Nen Script kann ich dir nicht geben, aber du kannst dir mit qlist -IC alle Pakete ausgeben lassen, die überführst du dann nach equery w $name, darauf dann ein grep nach ~arch, ist das erfolgreich den Namen per Sed rausschneiden und ein = vornedran setzen und in eine Datei schreiben.
> 
> Probleme wird es nur mit Overlays geben. Und es wird seine Zeit dauern, denn equery w ist nicht schnell.
> ...

 

Qlist ist ein interessantes Tool...

Aber ich hab da mal den eix Ansatz versucht: <<< Es gab einen Edit (!)

```
eix -Inc | sed -e 's/\[[A-Z]\]\s/<=/' -e 's/@.*$/ ~x86/' -e 's/\s(/-/'
```

Der ist meiner Ansicht nach schneller und leichter.

Aber dazu zwei Fragen:

 Wie füge ich mit sed das "=" oder etwas anderes hinzu ohne dabei etwas wie in diesem Fall zu ersetzen?

 Wie kann ich die drei letzten Zeilen einer Datei entfernen?

----------

## Finswimmer

$eix -Inc | sed -e 's/\[[A-Z]\]\s/=/' -e 's/@.*$/ ~x86/' -e 's/\s(/-/'|gawk -F " " {' print $1 '}

So gehts bei mir.

Hab aus <= in deinem sed ein = gemacht und |gawk -F " " {' print $1 '} angehängt, das trennt jede Zeile nach " ", also Leerzeichen und gibt nur den 1.Teil aus.

Tobi

----------

## McEnroe

 *Finswimmer wrote:*   

> $eix -Inc | sed -e 's/\[[A-Z]\]\s/=/' -e 's/@.*$/ ~x86/' -e 's/\s(/-/'|gawk -F " " {' print $1 '}
> 
> So gehts bei mir.
> 
> Hab aus <= in deinem sed ein = gemacht und |gawk -F " " {' print $1 '} angehängt, das trennt jede Zeile nach " ", also Leerzeichen und gibt nur den 1.Teil aus.
> ...

 

Warum nicht einfach so?:

```
eix -Inc | sed -e 's/\[[A-Z]\]\s/=/' -e 's/@.*$/' -e 's/\s(/-/'
```

Übersehe ich da etwas?

----------

## menschi

*  app-portage/autounmask

      Latest version available: 0.15

      Latest version installed: [ Not Installed ]

      Size of files: 2 kB

      Homepage:      http://download.iansview.com/gentoo/tools/autounmask/

      Description:   autounmask - Unmasking packages the easy way

      License:       GPL-2

----------

## Finswimmer

 *McEnroe wrote:*   

>  *Finswimmer wrote:*   $eix -Inc | sed -e 's/\[[A-Z]\]\s/=/' -e 's/@.*$/ ~x86/' -e 's/\s(/-/'|gawk -F " " {' print $1 '}
> 
> So gehts bei mir.
> 
> Hab aus <= in deinem sed ein = gemacht und |gawk -F " " {' print $1 '} angehängt, das trennt jede Zeile nach " ", also Leerzeichen und gibt nur den 1.Teil aus.
> ...

 

Ja, das es bei mir nicht geht  :Wink: 

```
$eix -Inc | sed -e 's/\[[A-Z]\]\s/=/' -e 's/@.*$/' -e 's/\s(/-/'

sed: -e expression #2, char 7: unterminated `s' command

```

----------

## Finswimmer

 *menschi wrote:*   

> *  app-portage/autounmask
> 
>       Latest version available: 0.15
> 
>       Latest version installed: [ Not Installed ]
> ...

 

Das hilft hier, denke ich wenig, denn es ist ja alles per ~x86 installiert. Nur ist die packages.keywords leer.

Und die soll ja gefüllt werden. Laut https://forums.gentoo.org/viewtopic-t-555387-highlight-.html muss man bei autounmask aber bestimmte Pakete angeben, deren Abhängigkeiten dann, falls nötig, eingetragen werden.

Tobi

----------

## McEnroe

@menschi: unmasken != keyworden

@Finswimmer: Mein Fehler: Beim zweiten Ausdruck hat ein "/" am Ende gefehlt

Jedenfalls habe ich es jetzt zum laufen gebracht:

```
eix -Inc | sed -e 's/^\[[IDU0-9]\]\s/=/' -e 's/@.*$/ ~x86/' -e 's/\s(/-/' -e 's/(.*)//' -e 's/\[[0-9]\]//'
```

Jetzt müsste man noch die letzten 3 Zeilen entfernen. Wie mache ich das ohne Editor?

----------

## firefly

 *McEnroe wrote:*   

> @menschi: unmasken != keyworden
> 
> @Finswimmer: Mein Fehler: Beim zweiten Ausdruck hat ein "/" am Ende gefehlt
> 
> Jedenfalls habe ich es jetzt zum laufen gebracht:
> ...

 

eventuell kannst du mit einem der Parameter "--format*" ne passende ausgabe erstellen.

----------

## Carlo

 *McEnroe wrote:*   

> Ich bin bald für ein Jahr weg. In der Zeit kann ich mein Gentoosystem leider nicht warten.

 

Darauf ist Gentoo einfach nicht ausgelegt. Es wird sich so viel geändert haben, daß eine Neuinstallation sinnvoller sein wird. Backup von /etc, /var und /home, Dump der verwendeten Datenbanken und in einem Jahr neu installieren sowie die wichtigen Daten wieder zurückspielen wird schneller gehen.

----------

