Как мне установить пакет, если компьютер не подключен к интернету?

На машине, на которой требуется установить пакет, выполняем команду

emerge -qpf имя-программы | sed '/^$/d;s/ .*$//' | sort -u > links.txt

Таким образом, у нас получается файл links.txt со списком ссылок.

Копируем links.txt на флешку, несём её на компьютер, где есть интернет, скачиваем файлы:

wget -c -i links.txt

Или закачиваем файлы в вашем любимом менеджере загрузок.
Копируем файлы обратно на флешку, идём к первой машине и копируем их в /usr/portage/distfiles/, продолжаем установку программы.

emerge -av имя-программы

Благодарим exlevan за прототип ответа.

Спасибо, это очень помогло.

Спасибо, это очень помогло. Вот другой вопрос: если с программами это проходит, то при "emerge -av gentoo-sources" он почему-то в нет тянеться, и лежащего там ядра в упор не видит. ???

должно работать, проверь все

должно работать, проверь все еще раз(в том числе и то, что файлы скачались вернр)

Да, точно -- там в названии

Да, точно -- там в названии версии оказалась ошибка: Gentoo искала 2.6.36, а у меня была 2.6.36.1

Может быть его просто вручную

Может быть его просто вручную распаковать, да и все?

Надо сказать, что у меня

Надо сказать, что у меня раньше так и было сделано (ведь я правильно понял: его в /usr/src/linux надо рапаковать?). Но почему то не запускался menuconfig (выдавал ошибку " ***Error: there no rules to make menuconfig" -- вроде так).

/usr/src/linux - обычно

/usr/src/linux - обычно ссылка на папку типа linux-"основная версия ядра"-"имя ядра"-r"доп" например linux-2.6.36-tuxonice-r2

Networkless-развёртывание, дерево portage

В актуальной редакции Handbook наблюдается вполне естественная и закономерная тенденция к отходу от привычного, не предъявляющего жёстких требований к наличию Сети в процессе установки в направлении утилиты emerge-webrsync.
Однако иногда бывает полезен именно старый сценарий.
Чтобы не рыться по архивным версиям документации отмечу здесь.

Подготовка:
1. Скачать необходимые файлы:

wget http://mirror.yandex.ru/gentoo-distfiles/snapshots/portage-latest.tar.bz2
wget http://mirror.yandex.ru/gentoo-distfiles/snapshots/portage-latest.tar.bz2.gpgsig
wget http://mirror.yandex.ru/gentoo-distfiles/snapshots/portage-latest.tar.bz2.md5sum

Или в более прогрессивном формате:

wget http://mirror.yandex.ru/gentoo-distfiles/snapshots/portage-latest.tar.xz
wget http://mirror.yandex.ru/gentoo-distfiles/snapshots/portage-latest.tar.xz.gpgsig
wget http://mirror.yandex.ru/gentoo-distfiles/snapshots/portage-latest.tar.xz.md5sum

2. Проверить подпись и контрольную сумму.

Собственно развёртывание:
(уже в дереве разворачиваемой системы)

# cd /usr
# tar xvjf /path/to/file/portage-latest.tar.bz2

:wq
--
Live free or die

Я у себя прописал такой вот

Я у себя прописал такой вот alias в .bashrc:

alias emerge-urls="emerge -qpfuDN @world | sed 's/ /\n/g'>/tmp/upd.url"

При таком методе в файл /tmp/upd.url попадают все ссылки на скачивание пакетов, что является гарантией того, что загрузятся все пакеты, даже те, которых нет на официальных зеркалах.
Далее качать лучше так:

wget -nc -i upd.url -P distfiles

В принципе до недавних пор меня этот метод устраивал чуть более чем полностью. Но у данного метода есть фатальный недостаток: в файл /tmp/upd.url попадают ссылки на скачивание пакетов, которые просто хотят пересобраться и сидя в кафешке с беспланым wifi я трачу дополнительное время на их загрузку. К тому же некоторые пакеты могут скачаться с другими именами (можно, конечно и переименовать, а можно и забыть). По этой причине написал скрипт:

# cat /usr/local/bin/emerge-mkfetchscript

#!/bin/bash
SCRIPTNAME=downloader.sh
SCRIPTPWD=/tmp

cat<<EOF > $SCRIPTPWD/$SCRIPTNAME
#!/bin/bash
[ ! -d distfiles ] && mkdir distfiles
EOF
chmod 755 $SCRIPTPWD/$SCRIPTNAME
FETCHCOMMAND="/bin/bash -c 'echo wget -nc \${URI} -O distfiles/\${FILE} >> $SCRIPTPWD/$SCRIPTNAME'" emerge --fetchonly $@

На десктопе запускаю команду

emerge-mkfetchscript -uDNav @world

emerge заканчивает свою работу с кучей ошибок, но файлик /tmp/downloader.sh таки создался. Запускаем его в нужное время в нужном месте на любом линуксовом ноуте.

Червон00кий.

На днях наступил с этим

На днях наступил с этим скриптом немножко на грабли (детские, да). Одного не пойму, почему wget создает пустые файлы с ключом -O когда сервер не доступен, на нем нет файлов и т.д.? Т. е. по поводу и без. Зачем? Это баг или фича? В общем протёр свои красные глазоньки и подредактировал его:

#!/bin/bash
SCRIPTNAME=downloader.sh
SCRIPTPWD=/tmp

cat<<EOF > $SCRIPTPWD/$SCRIPTNAME
#!/bin/bash
[ ! -d distfiles ] && mkdir distfiles
wget_arg="-nc"
EOF
chmod 755 $SCRIPTPWD/$SCRIPTNAME
FETCHCOMMAND="/bin/bash -c 'echo wget \${URI} -O distfiles/\${FILE} >> $SCRIPTPWD/$SCRIPTNAME'" emerge --fetchonly $@
sed -i 's/^wget /wget \$wget_arg /' $SCRIPTPWD/$SCRIPTNAME
sed -i 's/ distfiles\/[^ ]*$/&; [ "$(stat -c %s&)" = "0" ] \&\& wget_arg="-c" || wget_arg="-nc"/' $SCRIPTPWD/$SCRIPTNAME

Прошу прощения, если кто-то тоже успел наступить на эти грабли.

Червон00кий.

Настройки просмотра комментариев

Выберите нужный метод показа комментариев и нажмите "Сохранить установки".