Список URL для загрузки
Гость 28 марта, 2005 - 00:22
Ситуация: Дома интернет быстрый, но дорогой. В университете ещё быстрее и бесплатно. Можно ли при помощи emerge создать список из URL всех архивов, необходимых для установки данного пакета? Такой список можно было бы подать на вход wget в университете, и быстро всё закачать.
»
- Для комментирования войдите или зарегистрируйтесь
sorry
---
Нашёл. Оказывается emerge -fp выдаёт такой список.
Да вот только перенаправить вывод в файл не получается.
Ну дык ясен пень, он это в stderr выдает.
попробуй emerge -fp &> filename.lst
Только скриптец еще написать надо будет, который все это в нормальный вид будет приводить.
---
Gentoo / 2.6.11 / kde-3.4 (sometimes fluxfox)
Конечно надо
Конечно надо скрипт! :) Да не такой уж он и длинный. Вот каким я пользуюсь:
emerge -pf pakage_name 2>&1 | awk '/tp:/ { print $1 }'
Какой ключ для wget чтобы пропускать
Всем привет,
очень интересная тема. Хочу добавить вопрос.
Есть файл, созданный способом, указанным выше.
В этом файле усть множество ссылок, на разные сервера, с одним файлом. Какой ключ необходимо указать wget, чтобы он пропускал при скачивании существующие файлы на жестком диске (которые былискачены с других URLов)?
Из логов я так понял, что wget скачает, проверит время создания файлы на диске и слитого с инета, если существующий файл не новее, то wget пропускает скаченный файл.
Я бы лучше
Я бы лучше создал из этого файла новый, с одной ссылкой на файл. Например, тем же способом, который обсуждался выше:
cat file | awk '/tp:/ { print $1 }' > new_file
2Rinus: для
2Rinus: для танкистов - прочитайте сообщение товарища Nelud внимательно... ;) Команда, предложенная им, оставит только одно зеркало (в конкретном случае - первое).
Re: 2Rinus: для
В таком случае есть вопрос:
"Не все файлы необходимые для закачки существуют на каждом зеркале. В этом случае пользователь останется без некоторых файлов? Можно ли решить данную проблему?"
P.S. Спасибо за ответ
Re: Я бы лучше
Как изменить этот скрипт чтобы он создал файл, содержащие URL на сервер distfiles.gentoo.org?
Я считаю, что это будет самым правильным решением, т.к. вроде бы на этом сервере есть все файлы, необходимые для закачки.
P.S. Прошу меня поправить если я не прав. Спасибо.
Эта тема обсуждалась раньше.
Эта тема обсуждалась раньше.
Не могу найти ссылку на обсуждение, но там было предложено вот это решение http://gentooexperimental.org/script/repo/show/39
Единственный недостаток этого скрипта, нельзя вручную указывать выдавать тебе полное дерево пакетов или только те, которые неустановленны.
В общем связка
В общем связка вот этой команды
emerge -pf pakage_name 2>&1 | awk '/tp:/ { print $1 }' > url_list
И этого скрипта (взял с forum.gentoo.org.ua)
#!/usr/bin/python
import sys
import os
distdir='/usr/portage/distfiles/'
urlist=filter((lambda x : x), sys.stdin.read().split("\n"))
def foo(url):
return not os.path.isfile(distdir+os.path.basename(url))
for i in filter(foo, urlist):
print i
EOF
>>./remove list
Дадут нам файл list список урлов файлов которые надо закачать и их у нас нет в дистфайлах. Тема наверно на этом может быть закрыта??? И перенесена в faq???
вообще то все
вообще то все написано как ставить на
http://www.gentoo.org/doc/en/altinstall.xml
Ничего себе
Ничего себе скриптик!!! Как насчёт:
emerge -pf pakage_name 2>&1 | awk '/tp:/ { print $1 }'| while read f; do [ ! -s /usr/portage/distfiles/${f##*/} ] && echo $f; done > url_list
Если бы я хорошо знал awk, то, скорее всего, написал бы ещё более простой скрипт, а так приходится городить этот "while; do ; done"
вот бы еще к
вот бы еще к этому всему дельтап прикрутить была б вообще красота...
т.е. в список выдать зависимоть (которая обычно качается дельтапом), которую потом можно было бы выкачать на любой тачке, скопировать на первую и подсунуть дельтапу.
но, насколько я понимаю, это невозможно.
Это возможно!
Это возможно! Чтобы в этом убедиться, достаточно зайти сюда: http://linux01.gwdg.de/~nlissne/howtouse.html и посмотреть как формируется URL для дельт (только там инфа немного устарела --- надо версию 0.7 указывать). Самая большая проблема --- это автоматическое определение, какие у тебя есть старые дистфайлы. В этом даже сам deltup часто ошибается.
Повторы
Повторы встречаются.
Особенно kde-meta -- это кошмар
bash-2.05b# emerge -pf kde-meta 2>&1 | awk '/tp:/ { print $1 }'| while read f; do [ ! -s /usr/portage/distfiles/${f##*/} ]&& echo $f; done
http://distfiles.gentoo.org/distfiles/arts-1.4.1.tar.bz2
http://distfiles.gentoo.org/distfiles/kdelibs-3.4.1.tar.bz2
http://distfiles.gentoo.org/distfiles/kdeedu-3.4.1.tar.bz2
http://distfiles.gentoo.org/distfiles/kdeedu-3.4.1.tar.bz2
http://distfiles.gentoo.org/distfiles/kdeedu-3.4.1.tar.bz2
http://distfiles.gentoo.org/distfiles/kdeedu-3.4.1.tar.bz2
http://distfiles.gentoo.org/distfiles/kdeedu-3.4.1.tar.bz2
http://distfiles.gentoo.org/distfiles/kdeedu-3.4.1.tar.bz2
http://distfiles.gentoo.org/distfiles/kdeedu-3.4.1.tar.bz2
http://distfiles.gentoo.org/distfiles/kdeedu-3.4.1.tar.bz2
http://distfiles.gentoo.org/distfiles/kdeedu-3.4.1.tar.bz2
http://distfiles.gentoo.org/distfiles/kdeedu-3.4.1.tar.bz2
http://distfiles.gentoo.org/distfiles/kdeedu-3.4.1.tar.bz2
http://distfiles.gentoo.org/distfiles/kdeedu-3.4.1.tar.bz2
http://distfiles.gentoo.org/distfiles/kdeedu-3.4.1.tar.bz2
http://distfiles.gentoo.org/distfiles/kdeedu-3.4.1.tar.bz2
http://distfiles.gentoo.org/distfiles/kdeedu-3.4.1.tar.bz2
http://distfiles.gentoo.org/distfiles/kdeedu-3.4.1.tar.bz2
http://distfiles.gentoo.org/distfiles/kdeedu-3.4.1.tar.bz2
http://distfiles.gentoo.org/distfiles/kdeedu-3.4.1.tar.bz2
http://distfiles.gentoo.org/distfiles/kdeedu-3.4.1.tar.bz2
http://distfiles.gentoo.org/distfiles/kdeedu-3.4.1.tar.bz2
http://distfiles.gentoo.org/distfiles/kdepim-3.4.1.tar.bz2
http://distfiles.gentoo.org/distfiles/kdepim-3.4.1.tar.bz2
http://distfiles.gentoo.org/distfiles/kdepim-3.4.1.tar.bz2
http://distfiles.gentoo.org/distfiles/kdepim-3.4.1.tar.bz2
http://distfiles.gentoo.org/distfiles/kdepim-3.4.1.tar.bz2
http://distfiles.gentoo.org/distfiles/pth-1.4.0.tar.gz
http://distfiles.gentoo.org/distfiles/gpgme-1.0.2.tar.gz
http://distfiles.gentoo.org/distfiles/kdepim-3.4.1.tar.bz2
... и так далее ...
Это лечится, и
Это лечится, и очень просто: добавляем в конец скрипта "| sort -u". Таким образом получаем следующее:
# emerge -pf kde-meta 2>&1 | awk '/tp:/ { print $1 }'| while read f; do [ ! -s /usr/portage/distfiles/${f##*/} ]&& echo $f; done | sort -u