# Что делает emerge sync?

## Jekpol

Что делает emerge sync ? Обновляет измененные или все подряд ebuild и т.п. Я к тому, что будет экономичнее по трафику - скачать portage в архиве или emerge sync ? И как настроить rsync через squid ?

----------

## viy

 *Jekpol wrote:*   

> Что делает emerge sync ? Обновляет измененные или все подряд ebuild и т.п. Я к тому, что будет экономичнее по трафику - скачать portage в архиве или emerge sync ?

 

emerge sync работает только с измененными файлами. Удаленные тоже учитываются: если на сервере файла нет, у тебя тоже сотрут. Быстрее emerge sync, т.к. трафик меньше, где-то от 200K до 1М, в зависимости от частоты sync'ов.

 *Jekpol wrote:*   

> И как настроить rsync через squid ?

 

Я сделал файлик /etc/env.d/40rsync:

```
RSYNC_PROXY=user:passwd@host:port
```

... потом env-update && source /etc/profile

Нужна только переменная RSYNC_PROXY, так что вот.

----------

## Jekpol

Сделал. Выдает вот что:

emerge sync

>>> starting rsync with rsync://134.68.220.97/gentoo-portage...

>>> checking server timestamp ...

bad response from proxy - HTTP/1.0 403 Forbidden

rsync: failed to connect to 192.168.2.1: Success

rsync error: error in socket IO (code 10) at clientserver.c(8 :Cool: 

>>> retry ...

----------

## viy

А логин:пароль правильный? И нужны они вообще для прокси?

В целом, если ты lynx'ом или links2 сможешь выйти через прокси в сеть, то emerge rsync тоже должен работать --- прокси серверу пофиг, что и как.

Еще проверь наличие переменной среды http_proxy, может она как-то влияет.

----------

## Jekpol

Была проблема еще в конфиге squid, нужно было добавить пару правил для 783 порта. И вот после команды emerge sync все полетело, и налетело на 78M (превышение по сравнению с portage в архиве в 4 раза). А ведь я месяц назад обновлял дерево через webrsync. Какая же тут экономия? Или я чего-то не правильно сделал?

----------

## viy

Только что закончил, предыдущий раз был в пон. вечером:

```
Number of files: 102150

Number of files transferred: 759

Total file size: 78917079 bytes

Total transferred file size: 1471854 bytes

Literal data: 1471854 bytes

Matched data: 0 bytes

File list size: 2359616

Total bytes written: 15361

Total bytes read: 2983191

wrote 15361 bytes  read 2983191 bytes  16520.95 bytes/sec

total size is 78917079  speedup is 26.32
```

----------

## aim1159

 *Jekpol wrote:*   

> Была проблема еще в конфиге squid, нужно было добавить пару правил для 783 порта. И вот после команды emerge sync все полетело, и налетело на 78M (превышение по сравнению с portage в архиве в 4 раза). А ведь я месяц назад обновлял дерево через webrsync. Какая же тут экономия? Или я чего-то не правильно сделал?

 

Ключевая фраза -- обновляться надо чаще (как минимум раз в день), а лучше пару-тройку.

----------

## YD

 *aim1159 wrote:*   

> 
> 
> Ключевая фраза -- обновляться надо чаще (как минимум раз в день), а лучше пару-тройку.

 

sync рекомендуется делать раз в день, не больше, иначе как abuse могут расценить (:

----------

## Nelud

У меня такое впечатление, что когда делается emerge sync, то данные перегоняются в несжатом виде - отсюда и гигантский трафик по сравнению с emerge-webrsync. Почему бы девелоперам не сделать опцию compress, как во фрибсдишном CVSup'е?

----------

## iNot_

 *Nelud wrote:*   

> У меня такое впечатление, что когда делается emerge sync, то данные перегоняются в несжатом виде - отсюда и гигантский трафик по сравнению с emerge-webrsync. Почему бы девелоперам не сделать опцию compress, как во фрибсдишном CVSup'е?

 

Вы что-то бредите помоему, я вот поставил 2003,4 на новую машину, и обновил порты, 1,7 мега. Какие нах 74? Там их всего 74.

----------

## viy

 *Nelud wrote:*   

> Почему бы девелоперам не сделать опцию compress

 

Это предложение к разработчикам rsync'а, который portage использует.

К тому же, если делать emerge sync достаточно регулярно, то объем траффика не столь большой, чтобы использовать gzip/bzip2.

----------

## chernousov

 *Nelud wrote:*   

> У меня такое впечатление, что когда делается emerge sync, то данные перегоняются в несжатом виде

 

```
cat /usr/bin/emerge | grep "\-\-compress" -C6

                rsync_flags = [

                        "--recursive",    # Recurse directories

                        "--links",        # Consider symlinks

                        "--safe-links",   # Ignore links outside of tree

                        "--perms",        # Preserve permissions

                        "--times",        # Preserive mod times

                        "--compress",     # Compress the data transmitted

                        "--force",        # Force deletion on non-empty dirs

                        "--whole-file",   # Don't do block transfers, only entire files

                        "--delete",       # Delete files that aren't in the master tree

                        "--delete-after", # Delete only after everything else is done

                        "--stats",        # Show final statistics about what was transfered

      "--timeout="+str(mytimeout), # IO timeout if not done in X seconds

```

Отсюда можно сделать вывод, что rsync запускается с ключом --compress.

----------

## viy

 *chernousov wrote:*   

> 
> 
> ```
> cat /usr/bin/emerge | grep "\-\-compress" -C6
> ```
> ...

 

Оффтоп: можно оптимизировать до

```
grep "\-\-compress" /usr/bin/emerge -C6
```

 :Laughing:  что-то настроение у меня сегодня "прикольное"  :Laughing: 

----------

## chernousov

 *viy wrote:*   

> что-то настроение у меня сегодня "прикольное"

 

Наверное потому что сегодня пятница ;))

----------

