Скачивание всего distfiles

Sabayon, Calculate, Funtoo, Exherbo

Модератор: /dev/random

Аватара пользователя
Sekta-N
Сообщения: 854
ОС: Зоопарк

Скачивание всего distfiles

Сообщение Sekta-N »

Я нашел несколько зеркал с файлами. Но там копий по нескольким десяткам и выбрать все, но самые новые неполучится (очень много).
Можно как нибудь заполнить distfiles самыми новыми файлами (т.е самые новые ebuilds допустим есть
wine 0.9.49 0.9.50 0.9.51 а мне нужен только wine 0.9.51
Нет тут подписи и не будет.
Спасибо сказали:
Аватара пользователя
Poor Fred
Сообщения: 1575
Статус: Pygoscelis papua
ОС: Gentoo Linux, FreeBSD

Re: Скачивание всего distfiles

Сообщение Poor Fred »

Sekta-N писал(а):
21.12.2007 09:37
Я нашел несколько зеркал с файлами. Но там копий по нескольким десяткам и выбрать все, но самые новые неполучится (очень много).

Насколько я знаю, в гентушных дистфайлах содержатся только актуальные дистфайлы, даже с опережением портежей на день или больше.

Ну а если же тебе нужно выбрать какие-то определенные версии, то возможно несколько вариантов: пропарсить все манифесты в портежах, либо получить список файлов с помощью rsync и потом править список. Потом тем же rsync'ом с помощью опции --files-from=... скачиваешь их. Либо формируешь список для wget. И в том и в другом случае потребуется огромное ручное редактирование этих списков.

Есть еще один способ, но сам я его еще не пробовал. Удаляешь в портежах в каталогах категорий программ (например app-office) манифесты, переходишь в него и командуешь

Код: Выделить всё

emerge -f *

Будут закачиваться самые последние (незамаскированные при этом) версии пакетов. Удалять нужно потому что emerge не знает такого пакета metadata.xml и затыкается на нем.
В этом случае лучше поставить getdelta (см. Вики) и тянуть дельтами - сэкономишь много трафика.
Убить всех человеков!
Спасибо сказали:
n1kt0
Сообщения: 289
ОС: GNU/Gentoo

Re: Скачивание всего distfiles

Сообщение n1kt0 »

Код: Выделить всё

emerge -f *


как мне кажется emerge -F --более актуальна
Спасибо сказали:
Аватара пользователя
Sekta-N
Сообщения: 854
ОС: Зоопарк

Re: Скачивание всего distfiles

Сообщение Sekta-N »

А как игнорировать маски, он на них затыкается.
Нет тут подписи и не будет.
Спасибо сказали:
Nikoli
Сообщения: 554
Статус: Житель
ОС: Gentoo

Re: Скачивание всего distfiles

Сообщение Nikoli »

Sekta-N, вы уверены, что усилия по отсечению "лишних" исходников оправданны? Сейчас distfiles у меня занимает 49 Гб, может и вам будет лучше выделить эти гигабайты для полноценного зеркала, а не мучиться?
Спасибо сказали:
Аватара пользователя
KiWi
Бывший модератор
Сообщения: 2521
Статус: статус, статус, статус

Re: Скачивание всего distfiles

Сообщение KiWi »

Sekta-N писал(а):
21.12.2007 09:37
Я нашел несколько зеркал с файлами. Но там копий по нескольким десяткам и выбрать все, но самые новые неполучится (очень много).
Можно как нибудь заполнить distfiles самыми новыми файлами (т.е самые новые ebuilds допустим есть
wine 0.9.49 0.9.50 0.9.51 а мне нужен только wine 0.9.51

Как бы помягче сказать...
Для личного использования -- затея полностью лишена смысла...
Не для личного -- так делать НЕЛЬЗЯ. Почитайте про ACCEPT_KEYWORDS и поймите, что именно из-за них будет по 2, 3, 4, ... "новых" файлов.
Спасибо сказали:
Mellon
Сообщения: 655
Статус: Powered by Gentoo
ОС: Gentoo

Re: Скачивание всего distfiles

Сообщение Mellon »

Не понимаю, что за пустая болтовня :) столько дней наблюдаю за топиком, и никто нормально чуваку не ответит, чот все пытаются отговорить, уговорить так не делать, блаблабла...

Кароче, чувак, действуешь по следующей схеме с вариациями на тему emerge-pf (можно взять готовый скрипт emerge-pf в этом разделе, а можно допилить более простые команды из недавних топиков).

Код: Выделить всё

distributed_fetching() {

pkg_list=`tempfile || echo /tmp/_emerge-tmp1_`
url_list_st=`tempfile || echo /tmp/_emerge-tmp2_`
file_list_st=`tempfile || echo /tmp/_emerge-tmp3_`
url_list_un=`tempfile || echo /tmp/_emerge-tmp2_`
file_list_un=`tempfile || echo /tmp/_emerge-tmp3_`

backuping() {
date=`date +%d.%m.%Y.%H.%M.%S`
cp /etc/portage/package.unmask /etc/portage/package.unmask.$date
mv /etc/portage/package.unmask /etc/portage/package.unmask.back
cp /etc/portage/package.mask /etc/portage/package.mask.$date
mv /etc/portage/package.mask /etc/portage/package.mask.back
}

restoring() {
mv /etc/portage/package.unmask.back /etc/portage/package.unmask
mv /etc/portage/package.mask.back /etc/portage/package.mask
}

replacing() {
cat $pkg_list > /etc/portage/package.unmask
}

gen_pkg_list() # Generate a list of all available packages.
{
esearch -o "%p\n" ^ > $pkg_list
}

gen_source() {
stable() {
cat $pkg_list | xargs -r -L 1 emerge-pf -m -O > $url_list_st 2> $file_list_st
}
unstable() {
ACCEPT_KEYWORDS="**" cat $pkg_list | xargs -r -L 1 emerge-pf -m -O > $url_list_un 2> $file_list_un
}
stable
unstable
}

gen_output_lists() {
stable() {
grep '^http:' $url_list_st > /tmp/http_url_list_st.txt
cat /tmp/http_url_list_st.txt | xargs -r -L 1 basename | xargs -r -L 1 -I file grep -m1 "file" /tmp/http_url_list_st.txt > /tmp/http_url_wm_list_st.txt
}
unstable() {
grep '^http:' $url_list_un > /tmp/http_url_list_un.txt
cat /tmp/http_url_list_un.txt | xargs -r -L 1 basename | xargs -r -L 1 -I file grep -m1 "file" /tmp/http_url_list_un.txt > /tmp/http_url_wm_list_un.txt
}
stable
unstable
}

backuping
gen_pkg_list
replacing
gen_source
gen_output_lists
restoring

cat $file_list_st > /tmp/file_list_st.txt
cat $file_list_un > /tmp/file_list_un.txt
cat $url_list_st > /tmp/url_list_st
cat $url_list_un > /tmp/url_list_un
}

distributed_fetching


Может не работать, тогда шлите ошибки (можно в личку), а лучше допилите сами. Написано на коленке, всё очень просто, никаких гарантий.
Полученные списки url кормите вашей любимой качалке.
Некоммерческий файлообмен не может сравниваться с кражей, так как кража лишает кого-то возможности использовать украденный объект. ©
--------------------
Переворачиватель пингвинов
Спасибо сказали:
Аватара пользователя
Sekta-N
Сообщения: 854
ОС: Зоопарк

Re: Скачивание всего distfiles

Сообщение Sekta-N »

Mellon:
спасибо. я нашел более легкий способ:
переходим в директорию с нужным типом прог и набераем:
for i in *; do emerge -F $i; done
Весь мусор отфильтруется сам.
Нет тут подписи и не будет.
Спасибо сказали:
Аватара пользователя
Poor Fred
Сообщения: 1575
Статус: Pygoscelis papua
ОС: Gentoo Linux, FreeBSD

Re: Скачивание всего distfiles

Сообщение Poor Fred »

Sekta-N писал(а):
25.12.2007 15:48
Mellon:
спасибо. я нашел более легкий способ:
переходим в директорию с нужным типом прог и набераем:
for i in *; do emerge -F $i; done

:crazy: А emerge -F * не проще будет? :)
Убить всех человеков!
Спасибо сказали:
Аватара пользователя
/dev/random
Администратор
Сообщения: 5502
ОС: Gentoo

Re: Скачивание всего distfiles

Сообщение /dev/random »

Poor Fred писал(а):
25.12.2007 17:11
:crazy: А emerge -F * не проще будет? :)

Нет, не проще:
Sekta-N писал(а):
21.12.2007 12:44
А как игнорировать маски, он на них затыкается.

Если хоть один ебилд каким-то образом заблокирован, emerge -F * не скачает НИЧЕГО.
Спасибо сказали:
Аватара пользователя
Redfoxnet
Сообщения: 394
ОС: Gentoo

Re: Скачивание всего distfiles

Сообщение Redfoxnet »

/dev/random писал(а):
25.12.2007 21:43
Poor Fred писал(а):
25.12.2007 17:11
:crazy: А emerge -F * не проще будет? :)

Нет, не проще:
Sekta-N писал(а):
21.12.2007 12:44
А как игнорировать маски, он на них затыкается.

Если хоть один ебилд каким-то образом заблокирован, emerge -F * не скачает НИЧЕГО.

Сделай копию дерева портажей, размаскируй и черуться)
Portage 2.1.7.16 (default/linux/amd64/10.0, gcc-4.4.2, glibc-2.11-r1, 2.6.32-gentoo-r2 x86_64) @ Intel® Core™2 Duo CPU E6750

Челябинская группа пользователей GNU/Linux

Спасибо сказали:
Burnout
Сообщения: 88
ОС: Gentoo Linux

Re: Скачивание всего distfiles

Сообщение Burnout »

А что, через ACCEPT_KEYWORDS нельзя сделать? Не надо чрутиться и размаскировывать. Никакой головной боли. Просто выбираете нужные типы архитектуры и качаете на здоровье. ;)
Спасибо сказали:
Mellon
Сообщения: 655
Статус: Powered by Gentoo
ОС: Gentoo

Re: Скачивание всего distfiles

Сообщение Mellon »

чуваки, а читать вас не учили?
Пжалста размаскируйте через ACCEPT_KEYWORDS следующую бяку, для примеру.

Код: Выделить всё

% emerge -pF dev-ml/netclient

These are the packages that would be fetched, in order:

Calculating dependencies                      h
!!! All ebuilds that could satisfy "dev-ml/netclient" have been masked.
!!! One of the following masked packages is required to complete your request:
- dev-ml/netclient-0.3.1 (masked by: package.mask)
/usr/portage/profiles/package.mask:
# Alexis Ballier <aballier@gentoo.org> (03 Jan 2008)
# They are now included in dev-ml/ocamlnet
# Removal due: 03 Feb 2008

- dev-ml/netclient-0.90.4 (masked by: package.mask, ~x86 keyword)

For more information, see MASKED PACKAGES section in the emerge man page or
refer to the Gentoo Handbook.

[1]    2466 exit 1     emerge -pF dev-ml/netclient


И заверните...

гении хака, хотяб осиливайте то, что ранее написано хотяб элементарным языком неподрожаемого Bash'a. ага

Кстати, про маски...
For more information, see MASKED PACKAGES section in the emerge man page or
refer to the Gentoo Handbook.
Некоммерческий файлообмен не может сравниваться с кражей, так как кража лишает кого-то возможности использовать украденный объект. ©
--------------------
Переворачиватель пингвинов
Спасибо сказали: