Как быть со слабым инетом дома?
Гость 3 мая, 2005 - 16:52
Хотелось бы узнать вот что: допустим, поставлю я себе генту на работе - там инет позволяет, все нормально. И поставлю дома - но дома инет слабый - gprs, а хотелось бы именно генту(уж больно хвалите вы ее, завидно). Есть способ сделать так: на работе обновляться/ставить пакеты весь день, к вечеру записать на больванку все что нужно, отправиться домой и поставить все это? Как правильно сделать?
зы. Конфигурации компов разные.
Спасибо.
»
- Для комментирования войдите или зарегистрируйтесь
Делаешь
$ emerge -pfv ПАКЕТ_КОТОРЫЙ_ХОЧЕШЬ_ПОСТАВИТЬ
записываешь урлы на бумажку
идешь на работу
скачиваешь все, что надо
приходишь дамой и закидываешь скачаное в ${DISTDIR-/usr/portage/distfiles}
далее ставишь обычным путем (инет не потребуется)
для обновления системы идешь на любое зеркало в папку snapshots (например, ftp://mirror.pudas.net/gentoo/snapshots/ ) и скачиваешь последний снапшот, удаляешь старый ${PORTDIR-/usr/portage} (не потри тока distfiles и pakages) и распкаовываешь туда снапшот, после
enjoy ;)
P.S. помоему такая тема уже поднималась
---
GNU/Wonderland -- GNU/Страна чудес, страна, в которой вы часто бываете, но, в которую, что примечательно, не надо оформлять визу.
спасибо, это именно то что мне нужно.
насчет того тчо тема поднималась - я конечно догадывался, но не нашел, потому и спросил.
Некоторые пакеты по зависимостям могут ставить ещё штук 15-20. Затрахаешься, извиняюсь, всё это с экрана на бумажку переписывать, а потом выкачивать вручную.
Может, есть какие-нибудь средства, формирующие список урлов автоматически, или самому писать придётся?
блин, ну насчет бумажки я образно... в файлик, потом файлик на дискетку (компакт) и гоу на работу... а там урлы копипэстом вставлять =)
а если на работе линух, то и копипеста не надо.... скрипт на баше (строчек 5) сам распарсит файлик с урлами и скачает все что надо
_________________
GNU/Wonderland -- GNU/Страна чудес, страна, в которой вы часто бываете, но, в которую, что примечательно, не надо оформлять визу.
к тому же emerge -pf показывает ссылки на все требуемые файлы, в т.ч. на те, которые УЖЕ есть в /usr/portage/distfiles
_________________
Я не наступаю дважды на одни и те же грабли - каждый раз я нахожу новые!
Замечательная тулза
вобщем, слышал о ней, теперь сам наткнулся.
Утилита для тех, у кого дома слабый коннект, но на работе имеется хороший инет (и комп с линухом, т.к. тулза на баше написана).
_________________
GNU/Wonderland -- GNU/Страна чудес, страна, в которой вы часто бываете, но, в которую, что примечательно, не надо оформлять визу.
Как синхронизировать каталоги
У нас в универе есть внутреннее зеркало, так вот, как можно синхронизировать /distfiles из-под винды
еще вариант : слить снапшот и воспользоваться emerge-webrsync оно само все сделат
Re:
Я по не знанию своему при обновлении портежа удалял директорию packages, но у меня все вроде бы система работает стабильно. Какие могут быть последствия для меня из за моей ошибки?
Подскажите за что отвечает директория packages?
Спасибо
в нее
в нее складываются бинарные пакеты если ты их собираешь, конечно... если нет, то ничего сттрашного :)
_________________
GNU/Wonderland -- GNU/Страна чудес, страна, в которой вы часто бываете, но, в которую, что примечательно, не надо оформлять визу.
Re: в нее
спасибо
Вопрос...
А нельзя сделать так?:
1) Целиком скопировать с компа /usr/portage
2) На втором компе распаковать туда же (/usr/portage)
3) cd /usr/portage/distfiles
4) emerge --world
Или это не совсем корректно?
emerge и докачка в случае обрыва
будет-ли emerge докачивать файлы в случаее обрыва связи? А то было-бы обидно если на каком нибудь пакете оборвётся связь.
Конечно. :)
emerge использует (по умолчанию) wget, который прекрасно с этой задачей справляется.
Для gprs не вариант, но вещь интересная --- app-portage/getdelta
хорошо для обновления. Скацивает разницу м/у имеющимся у тебя файлом и новым файлом (например для обновления openoffice 1.1.3 до 1.1.4 надо качать всего неско метров).
bash-2.05b# emerge -s getdelta
Searching...
[ Results for search key : getdelta ]
[ Applications found : 0 ]
Нет такого :(((
есть такой :)
сделай emerge --sync .... getdelta не очень давно в оффициальном древе появилась
---
GNU/Wonderland -- GNU/Страна чудес, страна, в которой вы часто бываете, но, в которую, что примечательно, не надо оформлять визу.
а getdelta умеет работать через прокси?
_________________
Главное не забыть mount /dev/hands
она качает вгетом... следовательно можно попробывать через глобальные переменные окружения установить прокси, или, если не получится, через опции вгета (можно ковырнуть сам скрипт getdelta)
_________________
GNU/Wonderland -- GNU/Страна чудес, страна, в которой вы часто бываете, но, в которую, что примечательно, не надо оформлять визу.
спасибо за указаное направление, забыл указать переменyую PROXY :-(
_________________
Главное не забыть mount /dev/hands
Нормально по модему все можно выкачать (на жестяке около 2 Гб полезного хлама). Береш ночной нет и все будет скачено за недельку ;)
Еще неплохой скриптик app-portage/getdelta. Скачивает разницу м/у старым файлом и новым.
Мой опыт экономии на трафике
1. Использовал вот такой простой скрипт `emerge-pf`для определения
файлов, которые нужно скачать "на работе", т.е. там, где Интернет быстрее или дешевле. Текст скипта привожу ниже, он выполняет фильтрацию `emerge -pf`. ВАЖНО! Скрипт был написан более года назад,
с тех пор система portage улучшалась. Опция -a или --all более не требуется. Для получения списка URL можно и просто ввести команду типа:
emerge -pf ПАКЕТ 2>&1 | awk '{print $1}'
2. Дома стал использовать deltup+getdelta.
Вот хорошая статейка.
К сожалению эти пакеты в настоящий момент нестабильны (~x86).
3. Недавно стабилизировался пакет emerge-delta-webrsync. Состоит
всего из одного sh-скрипта позволяющего экономить на `emerge sync`.
Текст скрипта /usr/local/bin/emerge-pf:
Интересно. А
Интересно.
А нет ли более рациональных способов?
Может быть кто-то писал обертку для портежей чтобы
сразу использовать их возможности, а не распарсивать
вывод emerge? Возможно что-то в процессе разработки?
Переработал
Переработал скрипт Alex'a Zorg'a. (его версия с некоторых времён перестала работать у меня)
Сходи на
Сходи на www.linuxcenter.ru и купи ДВД версию - там мнооого пакетов
СТОИТ 250 р. без доставки
Извините, если
Извините, если я кого повторю - читать весь топик времени нет.
Я вижу такой выход: на работе обновлять портежи и качать проги, необходимые вам, а потом записавыть на болванку distfiles вместе с портежами.
Приходя домой копировать в систему обновленные портежи.
Таким образом у вас не будет проблем с несоответствией версий исходников и патчей.
Если дома комп - это ноутбук
Если дома комп - это ноутбук, то вопрос можно решить легко:
Я приношу ноут на работу, подключаю к сети, набираю:
#emerge -f <имя пакета>
в этом случае скачивается нужный мне пакет, вместе со всеми зависимостями, не нужно ничего ни на какую бумажку записывать. Если же домашний комп - ББ, т.е. Большой Брат ( ;-) ) То можно сделать так:
на работе в рабочей Генте вводим эту же команду:
#emerge -f <имя пакета>
гента все качает, что нужно, но не устанавливает, затем берем содержимое папки
/usr/portage/distfiles
переписываем на флешку и несем на домашний комп в эту же папку.
А дома уже даем команду:
#emerge <имя пакета>
и пакет компилится и устанавливается.
Для корректности нужно, чтобы срез портеджа был одинаковый и на работе, и дома.
Недостаток способа: избыточность при копировании папки /usr/portage/distfiles Однако если как-то фиксировать разницу в файлах до/после emerge -f <имя пакета>, то можно брать только новое.
Именно так я установил себе тяжелые пакеты: X,Gnome,Opera 10
Если USE-флаги разные или
Если USE-флаги разные или архитектуры, то ничего хорошего не получится. чать файлов все-равно не скачается.
некроманты...
некроманты...
нет,просто мееедленный
нет,просто мееедленный интернет: ping в 3 года
Compute:
Bosch M2.8.1 -> custom Bosch M2.8.3 clone from Russia.
Speed about 260 km,Ram 2 pers.,HDD - 70 kg,210 FLOPS ;)
не хулигань, теме три года
не хулигань, теме три года
Теме три года, а вопрос
Теме три года, а вопрос актуален, особенно с учетом прошедшего времени, изменений в portage и развития мобильного интернета.
Вариант: существуют две машины (железо и список установленных пакетов отличается), одна из которых имеет высокоскоростной выход в сеть.
Необходим механизм обеспечивающий возможность:
получение списка пакетов для обновления на машине без доступа в сеть - запись их в отдельный файл/скрипт - копирование данного скрипта на другую машину - скачивание списка необходимых пакетов без установки. (понятно, что если вопрос в менее чем десяток файлов их наименования и версии можно просто перекопировать, а если их гораздо больше...)
Ручное копирование и разархивирование на машине без доступа к сети свежего снимка portage предполагается заранее...
ping 5 лет
ping 5 лет :(
еикс,баш,сед,вгет - как было заявлено выше-5 строчек
Compute:
Bosch M2.8.1 -> custom Bosch M2.8.3 clone from Russia.
Speed about 260 km,Ram 2 pers.,HDD - 70 kg,210 FLOPS ;)
У меня есть скрипт, который
У меня есть скрипт, который бежит по всему портежу + еще оверлеи (по каждому ebuild-у), и скачивает его, вне зависимости от USE флагов. Написал для друга в регионе, у которого енета почти нет :)
У него АМД64 машина, у меня Интел 32.
Так и вожу ему на диске. Все занимает около 115 гигов.
а на счет синхронизации: можно же положить файл portage-latest.tar.bz2 в DISTDIR="${PORTAGE_TMPDIR}/emerge-webrsync" (у меня тут - /var/tmp/emerge-webrsync)
и воспользоваться утилитой emerge-webrsync. Она сама синхронизирует портеж. Либо как написано в документации: tar xvjf portage-latest.tar.bz2 -C /usr , предварительно переименовав (на всякий случай) /usr/portage в /usr/portage/old
#!/bin/bashOUT="/home/sasa/t
#!/bin/bash
OUT="/home/sasa/tmp/ebuild.out"
FILES=`find /usr/portage/ -type f -name '*.ebuild' | sort > $OUT`
LIMIT=20 # кол-во процессов /usr/bin/python2.6 & ebuild
WLIMIT=3 # кол-во процессов wget
if [[ -z `mount | grep /mnt/big_WD` ]]
then
echo "Устройство /mnt/big_WD не существует"
else
echo "Устройство /mnt/big_WD существует"
echo "Скачиваем базы DrWeb"
cd /pub/Linux/DrWeb/bases
sudo wget -c -m -np -nd -nH http://butters.drweb.com/pub/drweb/bases/
if [ -e /mnt/big_WD/mirr/distfiles ]
then echo "Каталог /mnt/big_WD/mirr/distfiles существует"
# echo "Скачиваем файлы портежей"
cd /mnt/big_WD/mirr/snapshots
d3=`date -d "-1 day" +%Y%m%d`
if [ -e portage-$d3.tar.bz2 ]
then
echo " Последние файлы портежей ( portage-$d3.tar.bz2 - например ) уже есть "
else
echo " Файлы портежей старые или нет вообще, удалим что есть и закачаем новые "
sudo rm portage*.*
sudo wget -c http://de-mirror.org/distro/gentoo/snapshots/portage-$d3.tar.bz2
sudo wget -c http://de-mirror.org/distro/gentoo/snapshots/portage-$d3.tar.bz2.gpgsig
sudo wget -c http://de-mirror.org/distro/gentoo/snapshots/portage-$d3.tar.bz2.md5sum
sudo wget -c http://de-mirror.org/distro/gentoo/snapshots/portage-$d3.tar.bz2.umd5sum
sudo wget -c http://de-mirror.org/distro/gentoo/snapshots/portage-latest.tar.bz2
sudo wget -c http://de-mirror.org/distro/gentoo/snapshots/portage-latest.tar.bz2.gpgsig
sudo wget -c http://de-mirror.org/distro/gentoo/snapshots/portage-latest.tar.bz2.md5sum
fi
echo "Начинаем синхронизацию distfiles по каждому ebuild-у"
for i in $( cat $OUT | grep .ebuild)
do
while true
do
if [ `sudo ps ax | grep -iwc /usr/bin/ebuild` -le $LIMIT -a `sudo ps ax | grep -iwc wget` -le $WLIMIT ]
then
# sudo ebuild $i fetch &
# eb=`basename $i`
# sed /"$eb"/d -i $OUT
sh /home/sasa/tmp/get_ebuild.sh $i $OUT &
break
else
sleep 5
fi
done
done
cd /mnt/big_WD/mirr/distfiles
sudo wget -c -m -r -np -nd -nH -N -A "*[aA][mM][dD]*" http://mirror.yandex.ru/gentoo-distfiles/distfiles/
sudo wget -c -m -r -np -nd -nH -N -A "*[aA][mM][dD]*" http://de-mirror.org/distro/gentoo/distfiles/
sudo rm $(find /mnt/big_WD/mirr/distfiles/ -type f -name '*checksum_failure*')
cd
cd tmp
else echo "Нет требуемых каталогов"
fi
fi
get_ebuild.sh#!/bin/shsudo
get_ebuild.sh
#!/bin/sh
sudo /usr/bin/ebuild $1 fetch
if [ $? -ne 0 ] # статус, что все закачалось успешно -eq
then
echo $1 >> /home/sasa/tmp/wget.err
fi
И в сухом остатке около 80 ebuild-ов не скачанных по лицензионным соглашениям (которые требуют денюжку за софт). В основном это /dev/java-sun или /usr/portage/sci-chemistry/. Но я и мой друг ими не пользуемся, так что...
Смотрите FAQ (слева вверху, раздел "Установка")
Вот: http://gentoo.ru/content/kak-mne-ustanovit-paket-esli-kompyuter-ne-podklyuchen-k-internetu
это если есть возможность где
это если есть возможность где нибудь скачать!
evadim: забанен за спам
Если нет возможности - то тут
Если нет возможности - то тут уж ничего не сделаешь вообще
Пользуясь моментом, хочу передать привет друзьям, которые также пользуются "Моментом"