--buildpkgonly (-B)
Creates binary packages for all ebuilds processed without actually
merging the packages. This comes with the caveat that all build-time
dependencies must already be emerged on the system.
--buildpkgonly (-B) Creates binary packages for all ebuilds processed _without_actually_merging_ the packages. This comes with the caveat that all build-time dependencies must already be emerged on the system.
Сейчас буду ругаться(особенно на последнего ананимуса). Все такие умные ... сразу в ман тыкнули нет бы кто сам проверит :
!!! --buildpkgonly requires all dependencies to be merged.
!!! Cannot merge requested packages. Merge deps and try again
А я ведь четко попросил, чтобы с зависимостями собирал.
> А я ведь четко попросил, чтобы с зависимостями собирал.
А ты сам подумай как этого можно добиться? Ведь если один пакет от другого зависит, то он про сборке будет его в системе искать. Как ты реально себе такую фишку представляешь?
Довольно просто, собирает /var/tmp/portage как обычно, только потом не удаляет то что собрал, а собирает с импользованием этого следующий пакет и т.д. под конец срубает все ненужное, и затаривает.
--oneshot - не подходит он устанавливает, только не вносит информацию о том что пакет установлен.
Сам подумай:
svyatogor правильно говорит
при сборке какого-либо пакета, свои зависимости он будет искать
в системе в установленном варианте, поэтому
emerge -pv package
и по списку
emerge -B package
только так.
другой вопрос:
как можно задать (если вообще можно) prefix при установке
хотелось бы что-то ставить в /opt а что-то в /usr/local
нечто вроде
emerge --prefix=/opt mozilla-firefox
хотя если подумать, следует ли при этом
распространять prefix на зависимости...
блин, эти зависимости все портят как всегда :)
хотя бы prefix для пакета, который ставится,
исключая его зависимости.
?
2goodwin, так я об этом и говорил, производится сборка в /var/tmp/portage, а потом на базе того пакета собирается следующий и т.д., только как заставить emerge искать в /var/tmp/portage
Как я понял вы прнлагаете тоже самое что делает emerge -b, а потом unmerge, но проблема в том что зависимости сам пакет и зависимсти невкоем случае не должны быть установлены. Все эти извращения делаются для создания live-cd, в котором будут другие версии пакетов и следовательно после таой установки будут конфликтовать с уже установленными.
Пакет и все зависимости собранные в бинарном виде. А не устраивает то что нужно себе в систему их устанавливать или придется отдельно каждый собирать и в ручную прописывать ./configure --prefix=/temp
>кет и все зависимости собранные в бинарном виде. А не устраивает то что нужно >себе в систему их устанавливать или придется отдельно каждый собирать и в >ручную прописывать ./configure --prefix=/temp
так я же объяснил как решить эту проблему,
вы что читать не умеете?
Извините, но я не смог найти в вашем посте как это сделать, если я что-то проглядел, то ткните носом. Вы похоже име ввиду реализацию типа:
emerge -p paket>zavis; max=`cat zavis|grep ebuild|wc -l`; for ((i=1;i<max;i++)) do (emerge --nodeps -B =`cat zavis | grep ebuild | cut -d '/' -f 2|head -n $i|tail -n -1`) done
Но такой подход не решит всех проблем ибо у зависимостей тоже есть зависимости, но проблема даже не в этом, а в том что emerge'om нельзя поставить пакет вкакую-то определенную директорию(а может просто я не нашел), можно сделать ebuild unpack compile а потом make install DESTDIR=/tmp , но тогда встает вопрос как заставить искать зависимости именно в /tmp.
Устанавливать несколько версий програм помоему нельзя за редким исключением(например gcc).