LINUX.ORG.RU

[gentoo] Несколько вопросов

 


0

1

Сабж:
1. Какие пакеты в генте можно без вреда удалить, кроме GCC (установка будет делаться emerge <pkg> -avk)? И как сделать чтоб они не устанавливались при emerge -avuDN world? Нужно для пункта 5.
2. Есть собраная гента в чруте, на которой крутятся ftp и http сервера. (амд64). Ради интереса собрал фтп-сервер так emerge vsftpd -avk --root=/chroot2; потом emerge -avuDN world --root=/chroot2.
Размер каталога /usr >500 мб (без /usr/portage & /usr/src), /chroot/usr - 250. Почему??
3. После сбора vsftpd и копирования конфигов запускаю его(п2) (из католога /chroot2), пишет что уже запущен. (но я его остановил, для надежности запускал killall vsftpd -9).
Логов нет, пид-файлов тоже.

# /etc/init.d/vsftpd restart
  * WARNING: vsftpd is already starting
# /etc/init.d/vsftpd status
  * status: stopped
# /etc/init.d/vsftpd restart
  * WARNING: vsftpd is already starting
4.В дебиане было автодополнение второй команды, например sudo chroot (можно было написать sud <tab> chro <tab>). Можно такое сделать в генте??
5.Нужно собрать гентушечку в комп.класс для старых компов (P1-mmx) Написал такой make.conf
CFLAGS="-march=pentium-mmx -O2 -pipe -mmmx -fomit-frame-pointer"
CXXFLAGS="${CFLAGS}"
LDFLAGS="-Wl,-O1 -Wl,--as-needed"
CHOST="i586-pc-linux-gnu"
USE="-* mmx ....."
Вопрос: если я соберу у себя на амд64 (чрутнусь в x86-систему), можно будет сделать перенос собранных бинарников??Или собирать в виртуальной машине??

★★★★

Последнее исправление: ymuv (всего исправлений: 1)

Если тебя забанили в google+, то возможности гуглить это тебя не лишает

Deleted
()

1) Портаж сам скажет, какие пакеты лучше не удалять.

 emerge -C binutils
 * This action can remove important packages! In order to be safer, use
 * `emerge -pv --depclean <atom>` to check for reverse dependencies before
 * removing packages.

>>> These are the packages that would be unmerged:


!!! 'sys-devel/binutils' is part of your system profile.
!!! Unmerging it may be damaging to your system.

2) Насколько я понимаю, --root всего лишь говорит, куда устанавливать пакеты, поэтому -avuDN установит все зависимости внешней системы, а не той, что в chroot2. Что именно занимает место - du -hs в помощь.
3) /etc/init.d/vsftpd zap, так же можно .pid файл удалить, если он есть
4) автодополнение - отдельная тема, google://bash+completion, что-то баш по дефолту умеет, что-то нет. То есть до sudo после sud<TAB> должен догадаться, а до sudo chroot после sudo chro<TAB> - нет.
5) -m32 не забудь, и chroot делай как linux32 chroot /path/to/chroot

tiandrey ★★★★★
()

Дополнение команд это автокомплит. Например в федоре называется bash-complition для баша, ну дальше понятно.

wbrer ★★★
()

gentoo - «жирная» система. Для п. 5 попробовал бы что-то готовое, что взлетит на таком хламе.

vvn_black ★★★★★
()

И, кстати, чтобы меньше весило всё, используй -Os; также (ты ведь не собираешься на этих пнях обновлять софт, нет, ну правда?) статические либы (.a) можешь поудалять. У gcc можно поотрубать лишние флаги, например, фортан и проч.

tiandrey ★★★★★
()
Ответ на: комментарий от tiandrey

Как вариант, в USE="-*", а потом руками указывать.

Автодополнение по eselect bashcomp. Есть куча инструкций в гугле.

Shtsh ★★★★
()

2. emerge -avk <package_name> - вы не собрали пакет, а установили собранный бинарный пакет в указанную директорию. Но у вас установился только один пакет без зависимостей, т.к. остальные его зависимости установлены в вашей системе относительно корня «/» вашей системы, поэтому в «/chroot2» «встал» только один пакет без зависимостей. Есди хотите ставить нормально в чрут, то либо ставьте с ключом "-D", либо лучше «пробросьте» в chroot окружение дерево портов и архив бинарных пакетов, хотя бы с помощью mount -o bind., затем делайте chroot и ставьте бинарный пакет emerge -k <package_name>

3. При повторном запуске стартового сценария проверяется наличие pid файла в директории /var/run/vsftpd.pid, если вы убили процесс с помощью kill то у вас остался pid файл, в котором хранится Proces Identificator, поэтому повторный запуск сценария и говорит о том, что данный демон уже запущен, удалите pid файл запускаемого вами стартового сценария, а лучше останавливайте по нормальному, через вызов процедуры stop стартового сценария требуемого демона.

5. Собирайте систему в chroot, но перед переходом в 32-битное chroot окружение выполняйте команду linux32, затем уже chroot.

После сборки пакетов вы можете опубликовать к примеру на ftp сервере или http сервере дерево портэжэй и бинарных пакетов этой эталонной системы, или вообще черех nfs сервер, на машинах класса укажите источник бинарных пакетов указывайте ставить бинарные пакеты.

kostik87 ★★★★★
()
Ответ на: комментарий от tiandrey

1) Портаж сам скажет, какие пакеты лучше не удалять.

Он мне сказал, что не удалять binutils и gcc. Удалил, перегрузился. Эти пакеты нужны только для компиляции. 3. .pid файла нету, логов тоже.

# /etc/init.d/vsftpd zap
 * Manually resetting vsftpd to stopped state
# /etc/init.d/vsftpd restart
 * WARNING: vsftpd is already starting

4. Один раз дополняет, интересует после дополнение после второго и следующего слова. google://bash+completion - спасибо, поищу.
>-m32 не забудь
Насколько я понял, если делать linux32 chroot /path/to/chroot то ненужно?

ymuv ★★★★
() автор топика
Ответ на: комментарий от tiandrey

Ну там ведь не просто USE="-*"
а
USE="-* mmx fpu alsa unicode -X dbus acpi nptl nvidia \..."

ymuv ★★★★
() автор топика
Ответ на: комментарий от ymuv

Он мне сказал, что не удалять binutils и gcc. Удалил, перегрузился. Эти пакеты нужны только для компиляции.

equery f gcc | grep "\.so$"
/usr/lib/gcc/x86_64-pc-linux-gnu/4.5.3/32/libffi.so
/usr/lib/gcc/x86_64-pc-linux-gnu/4.5.3/32/libgcc_s.so
/usr/lib/gcc/x86_64-pc-linux-gnu/4.5.3/32/libgomp.so
/usr/lib/gcc/x86_64-pc-linux-gnu/4.5.3/32/libmudflap.so
/usr/lib/gcc/x86_64-pc-linux-gnu/4.5.3/32/libmudflapth.so
/usr/lib/gcc/x86_64-pc-linux-gnu/4.5.3/32/libstdc++.so
/usr/lib/gcc/x86_64-pc-linux-gnu/4.5.3/libffi.so
/usr/lib/gcc/x86_64-pc-linux-gnu/4.5.3/libgcc_s.so
/usr/lib/gcc/x86_64-pc-linux-gnu/4.5.3/libgcj-tools.so
/usr/lib/gcc/x86_64-pc-linux-gnu/4.5.3/libgcj.so
/usr/lib/gcc/x86_64-pc-linux-gnu/4.5.3/libgcj_bc.so
/usr/lib/gcc/x86_64-pc-linux-gnu/4.5.3/libgij.so
/usr/lib/gcc/x86_64-pc-linux-gnu/4.5.3/libgomp.so
/usr/lib/gcc/x86_64-pc-linux-gnu/4.5.3/libmudflap.so
/usr/lib/gcc/x86_64-pc-linux-gnu/4.5.3/libmudflapth.so
/usr/lib/gcc/x86_64-pc-linux-gnu/4.5.3/libstdc++.so
for i in /usr/bin/*; do ldd $i | grep libgcc_s.so; done | wc -l
286
tiandrey ★★★★★
()
Ответ на: комментарий от kostik87

> поэтому в «/chroot2» «встал» только один пакет без зависимостей.
Я ведь потом сделал emerge -avuDN world --root=/chroot2

3. При повторном запуске стартового сценария проверяется наличие pid файла в директории /var/run/vsftpd.pid

*.pid файлов нет, так как я запускаю сервер первый раз в каталоге /chroot2.Логов тоже нет.

После сборки пакетов вы можете опубликовать к примеру на ftp сервере или http сервере дерево портэжэй и бинарных пакетов этой эталонной системы, или вообще черех nfs сервер, на машинах класса укажите источник бинарных пакетов указывайте ставить бинарные пакеты.

Это я знаю, выбрал nfs.

ymuv ★★★★
() автор топика

5.Нужно собрать гентушечку в комп.класс для старых компов (P1-mmx)

man catalyst

catalyst is the tool that the Gentoo Release Engineering team utilizes to build all Gentoo Linux releases. It is capable of building installation stages, bootable LiveCDs, netboot images, and Gentoo Reference Platform (GRP) sets. catalyst is also capable of providing a simple tinderbox environment for ebuild/package testing.

For more information, please visit the catalyst project page on the web at http://www.gentoo.org/proj/en/releng/catalyst.

ArtSh ★★★
()
Ответ на: комментарий от ymuv
mount | grep rc
rc-svcdir on /lib64/rc/init.d type tmpfs (rw,nosuid,nodev,noexec,relatime,size=1024k,mode=755)
ls /lib64/rc/init.d/started/
acpid   alsasound  consolefont  devfs  fbcondecor  fsck      hwclock   keymaps  localmount  mpd   net.lo          privoxy  root  sysctl  syslog-ng     udev        udev-postmount  xdm
actkbd  bootmisc   dbus         dmesg  fcron       hostname  iptables  local    modules     mtab  NetworkManager  procfs   swap  sysfs   termencoding  udev-mount  urandom         xdm-setup
ls /lib64/rc/init.d/starting/
tiandrey ★★★★★
()
Ответ на: комментарий от ymuv

поэтому в «/chroot2» «встал» только один пакет без зависимостей.

Я ведь потом сделал emerge -avuDN world --root=/chroot2

Ну тогда как я уже сказал проброс дерева портов и бинарных пакетов в chroot окружение, собственно chroot и установка обычным способом emerge -k <package_name> или установка emerge -ae <package_name> --root=/chroot2, но так не безопасно.

kostik87 ★★★★★
()
Ответ на: комментарий от ymuv

>> поэтому в «/chroot2» «встал» только один пакет без зависимостей.

Я ведь потом сделал emerge -avuDN world --root=/chroot2

и?
вот если бы сделал emerge -avueDN world --root=/chroot2
тогда можно было бы подумать

megabaks ★★★★
()
Ответ на: комментарий от megabaks

а вообще плюсую kostik87
лучше полноценный чрут и собирать там
удалять gcc - очень опрометчивый шаг - слишком многое от него зависит - например весь приплюснутый софт просит GLIBCXX_3_*_* - а это предоставляет как раз gcc

megabaks ★★★★
()
Ответ на: комментарий от megabaks

Удалил гцц и бинутилс в генте с lxde, работал >10 минут, работало все что нужно.
Удалил в генте с кде - выкидывает ошибку.

ymuv ★★★★
() автор топика
Ответ на: комментарий от tiandrey

нет
GLIBCXX_3.4.1* предоставляет gcc
а
libstdc++-v3 GLIBCPP CXXABI
больше ничего похожего на плюсы не нашёл

megabaks ★★★★
()
Ответ на: комментарий от tiandrey

на примере qt-core

....
Version information:
	/usr/lib/qt4/libQtCore.so.4.7.4:
.....
		libstdc++.so.6 (CXXABI_1.3) => /usr/lib/gcc/i686-pc-linux-gnu/4.6.1/libstdc++.so.6
		libstdc++.so.6 (GLIBCXX_3.4) => /usr/lib/gcc/i686-pc-linux-gnu/4.6.1/libstdc++.so.6
GLIBCXX libstdc++-v3 вообще не предоставляет
оно даже по ABI не прокатит
libstdc++-v3
7 0x00 0x056bafd2 CXXABI_1.2
8 0x00 0x0bafd271 CXXABI_1.2.1
	CXXABI_1.2 
9 0x00 0x0bafd272 CXXABI_1.2.2
	CXXABI_1.2.1
а нам надо уже 1.3

megabaks ★★★★
()
Ответ на: комментарий от megabaks

Compatibility package for running binaries linked against a pre gcc 3.4 libstdc++

Ага, понял

tiandrey ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.