# emerge --sync lokal

## LinuxTom

Hi,

ich habe einen etwas älteren Laptop, der für Gentoo noch gut ist. Nur leider bekomme ich die Netzwerkverbindung derzeit nicht ans laufen. Ist auch nicht so schlimm. Meine Frage: Kann ich das "emerge --sync", oder auch das "eix-sync", das ich eher verwende umbiegen?

Normal wäre in der make.conf beispielsweise:

```
SYNC="rsync://rsync1.de.gentoo.org/gentoo-portage"
```

Ich hätte da aber gerne so etwas stehen wie:

```
SYNC="file:///mnt/cdrom/gentoo-portage"
```

oder auch

```
SYNC="/mnt/cdrom/gentoo-portage"
```

Wie kann ich das machen?

----------

## Apheus

Wenn der Portage Tree schon lokal ist, brauchst du ja nicht mehr --sync'en, eine "file:///" URL würde also wenig Sinn machen. Damit emerge den Ordner verwendet, müsstest du PORTDIR in make.conf auf dieses Verzeichnis setzen, aber prüf erst mal genauer in der Manpage, was da alles dazugehört - ist ein längerer Abschnitt in "man make.conf".

Den Index von eix kannst du dann einfach aktualisieren mit "eix-update".

Ansonsten benutze ich den rsyncd-Dienst zum synchronisieren mehrerer Rechner. Auf dem Hauptrechner (der vom Internet synchronisiert wird) läuft der rsyncd-Dienst, und in seiner Konfigurationsdatei ist eine "Freigabe" eingerichtet:

/etc/rsyncd.conf:

```

# Simple example for enabling your own local rsync server

[gentoo-portage]

path = /usr/portage

comment = Gentoo Portage tree

exclude = /distfiles /packages

```

Ein anderer Rechner hat in make.conf:

```

SYNC="rsync://<Hostname des Hauptrechners>/gentoo-portage"

```

Das müsstests du auch lokal machen können, was aber nur Sinn macht falls das Quellverzeichnis immer nur temporär da ist (z.B. auf CD).

----------

## LinuxTom

Alles gut und schön, doch mit dem Laptop habe ich derzeit kein Internet. Ich will ihn nur einmalig syncen. Das Portage-Dir soll so bleiben, da ich nächsten Monat eine Netzwerkkarte für den Laptop bekomme.

Also so etwas wie "rsync /mnt/cdrom/portage /usr/portage". Zur Not muss ich den RSync-Deamon einrichten, mit dem sich emerge sync'd und der Deamon zeigt aufs CD-Rom.

----------

## Apheus

 *LinuxTom wrote:*   

> Also so etwas wie "rsync /mnt/cdrom/portage /usr/portage"

 

Ja, für eine einmalige Operation sollte auch ein manueller rsync-Aufruf ausreichen, etwas anderes wird der Dienst wahrscheinlich auch nicht machen. Wie der rsync-Befehl dann exakt auszusehen hat, weiß ich aber nicht.

----------

## Christian99

wenn es doch sowiso nur vorübergehend ist, wieso kopierst du dann nicht einfach per hand? alten tree löschen, neuen tree von der cdrom rüberkopieren. schnell einfach problemlos. wäre mein vorschlag.

----------

## Apheus

Egal ob von Hand mit cp oder mit rsync: Pass auf die Verzeichnisse /usr/portage/distfiles und /usr/portage/packages auf, die willst du wahrscheinlich behalten.

----------

## LinuxTom

Wenn ich einfach ein rsync von CD-Rom nach /usr/portage machen kann bin ich zufrieden. Klar das mit den Distfiles. Doch "emerge --sync" macht doch noch mehr. Profilecache usw. Ich glaube, da würde doch das eine oder andere ein wenig durcheinander kommen.

----------

## Christian99

ich weiß nicht genau, was emerge --sync sonst noch alles anstellt, aber ich sag mal so: bei der installation von gentoo wird ja auch per hand ein tree ins /usr/portage/ verzeichnis geschoben, deswegen dachte ich, es kann nicht so schlimm sein.

----------

## Veldrin

emerge --sync aktualisiert den portage per rsync oder git, und macht danach noch ein emerge --metadata - da geht auch ohne Internet.

----------

## schmutzfinger

```
SYNC="foobar" eix-sync
```

Bringt nen netten Fehler aber das sieht verdammt so aus als wäre es die Lösung deines Problems.

----------

## LinuxTom

```
 * Starte emerge --sync

!!! Unrecognized protocol: SYNC='foobar'

 * emerge --sync schlug fehl

 * Benötigte Zeit:

     6 Sekunden für syncen

     7 Sekunden insgesamt

```

Sieht eher so aus, als dass emerge abbricht und eix-sync dadurch nichts macht. Irgend wie nicht das, was ich suche.  :Wink: 

----------

## LinuxTom

Sorry Veldrin, habe Dein Posting gesern Abend vor lauter Schnee nicht gesehen.

 *Veldrin wrote:*   

>  .. emerge --metadata ... 

 

Also müsste

```
sync -ac --stats --partial /mnt/cdrom/portage /usr/portage

eix-sync -m
```

doch die Lösung sein. Oder?

EDIT: Die Distfiles werde ich nicht rauslassen, denn dieser Rechner kann ja nichts aus dem Netz nachladen.  :Wink: 

----------

## Veldrin

Kein Problem...

Ich bin gerade nicht an meiner Gentoo Maschine, aber wenn eix-sync -m dasselbe wie emerge --metadata macht siehts gut aus. 

für den sync command hätte ich sowas eingesetzt:

```
 rsync -av --delete-after --exclude=/distfiles /mnt/cdrom/portage/  /usr/portage/

rsync -av /mnt/cdrom/portage/distfiles/ /usr/portage/distfiles/
```

Ich verwende 2 Commands - den ersten um den tree zu syncen und aufzuräumen, den 2tem um die distfiles zu aktualisieren, aber ohne die alten zu löschen. wenn es dir egal ist, die alten distfiles zu verlieren, dann reicht auch rsync -av --delete-after /mnt/cdrom/portage/ /usr/portage/.

cheers

V.

bitte schau nochmals ob die angehängten / nötig sind - ich vergess immer wieder welche Variante richtig ist. machst dus falsch erstellt er einen neuen Ordner.

----------

## ChrisJumper

Warum nicht einfach immer ein aktuelles  portage-latest.tar.bz2 herunterladen auf USB oder CD Brennen und wie bei der Ursprungsinstallation entpacken?

Das sollte doch genau den selben Effekt haben von einem sync, oder nicht?

----------

## Genone

Kleiner Tip wenn man den Tree manuell mit rsync kopieren will:

```
emerge --info | grep PORTAGE_RSYNC_OPTS
```

Snapshot entpacken geht auch wenn man vorher den alten Tree löscht/verschiebt. Einen Snapshot in einen vorhandenen Tree zu entpacken ist hingegen keine gute Idee.

----------

## LinuxTom

 *Genone wrote:*   

> Kleiner Tip ...

 

Danke. das ist das was ich gesucht habe. Und dann das eix-sync -m und alles ist gut.  :Smile: 

----------

