LINUX.ORG.RU

Про make.conf и ccache

 , ,


1

2

Есть у меня дома три генты и хочется мне, чтобы тянули они себе конфиги из специального репозитория. Скажем, есть ~/repos/system, там все общие конфиги, а есть ~/repos/system-special, где конфиги персональные на каждый хост. Для make.conf сделано так: В system лежит etc/portage/make.conf.common, а в system-special etc/portage/make.conf.$HOSTNAME, где $HOSTNAME есть имя хоста, к которому этот спецконфиг относится. Проблема в том, что сорсить из make.conf-то можно, а вот подстановка $HOSTNAME не работает – он ищет имя файла, как если бы оно было в одинарных кавычках. shopt не работает, значит там не баш, а sh, как ему сказать, чтоб он раскрывал $HOSTNAME?

Поставил ccache, но заметил, что компиляция идёт дольше обычного. Оказалось, что CCACHE_SIZE=«4G», прописаный в make.conf эффекта не имеет – размер папки ccache не превышает одного гигабайта. После ccache -M 4G заработало правильно. А после перезагрузки

# ccache -s
cache directory                     /root/.ccache
cache hit (direct)                     0
cache hit (preprocessed)               0
cache miss                             0
files in cache                         0
cache size                             0 Kbytes
max cache size                       1.0 Gbytes

# grep -i ccache /etc/portage/make.conf
CCACHE_SIZE="4G"
FEATURES="preserve-libs ccache"

# grep -i source /etc/portage/make.conf
source /home/fargred/repos/system-special/etc/portage/make.conf.home
source /var/lib/layman/make.conf

# grep -i ccache /home/fargred/repos/system-special/etc/portage/make.conf.home
# For ccache
CCACHE_DIR="/var/tmp/.ccache"
#CCACHE_PREFIX="distcc"

# ls /root/.ccache
ls: cannot access /root/.ccache: No such file or directory

# du -hsx /var/tmp/.ccache/
3.0G	/var/tmp/.ccache/

Вопрос про make.conf не актуален, а про ccache ответов всё ещё жду.

Deleted

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

я сделал так - make.conf на каждой системе делает source /etc/portage/make.conf.common а уж потом переопределяет нужные опции

Подстановку $HOSTNAME делать не стал - мне она не нужна.

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

Про ccache: уменьшение скорости компиляции - это by-design. Попробую статью найти. А оно тебе зачем? Профит только от повторной компиляции.

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

уменьшение скорости компиляции - это by-design.

В смысле с последними обновлениями?

А оно тебе зачем?

Я часто что-то пересобираю. Да и мир компилять быстрее выходит.

Deleted
()

2 feofan
Я вчера патчил rtorrent и пересобирал два раза, а сегодня, даст бог, буду патчить его дальше. Ещё вопросы?

2 Pinkbyte

Форкать не советую - я часто делаю rebase >:-D

А форкать пока и некуда, мне б со своими локальными разобраться да на гитхаб начать кидать, кстати, что это за вебморда? И почему не гитхаб? Или это какая-то локальная его версия?

PORTAGE_IONICE_COMMAND=«ionice -c 3 -p \${PID}»

Это конечно соблазнительно, а ты не тестил, как оно с -с3 работает в иксах и без? Алсо, подобная фича для taskset тоже бы не помешала. Хотя их вроде можно и подряд в командной строке указывать вместе с ionice, я так делал уже. В идеале я б сделал их с проверкой на мою залогиненность – если залогинен, юзай остатки I/O и все ядра минус одно, если не залогинен – бери весь I/O и ядра. Но это в make.conf опять ж не запихнёшь, потому что sh.

LINGUAS=«ru ru_RU»

А кто это использует ru_RU? И что за мультибайтные патчи для баша?


2 Chaser_Andrey
Чтоб ты спросил.

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

кстати, что это за вебморда?

gitweb, официальная вебморда к git-у

И почему не гитхаб? Или это какая-то локальная его версия?

Мне удобнее держать это на домашнем сервачке - пользователь то один я :-). Оверлей вот напротив я туда только зеркалю - основной репозитарий у моего оверлея на github

А кто это использует ru_RU?

smplayer, например

И что за мультибайтные патчи для баша?

На машине без патчей:

internet ~ # ололо
bash: $'\320\276\320\273\320\276\320\273\320\276': команда не найдена

С патчами:

pinkbyte@oas1 ~ $ ололо
bash: ололо: команда не найдена

Pinkbyte ★★★★★
()
Последнее исправление: Pinkbyte (всего исправлений: 3)
Ответ на: комментарий от Pinkbyte

С патчами

Uuuu~ надо поставить!

Кстати, я тут думал про то, что и world бы надо как-то вместе поддерживать, по идее для этого должна быть какая-то приблуда, но поднимать чот-то громоздкое и городить шедулинг и кластеризацию дома, только чтоб запускать раз в месяц как-то не хочется, может, тебе попадались чьи-нибудь велосипеды, которые можно посмотреть?

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

кеды и там, и там, но, к примеру, на работе Virtualbox(нет аппаратной виртуализации на десктопе :(), а дома qemu+kvm с libvirt+virt-manager.

И это первое что в голову пришло...

Pinkbyte ★★★★★
()
Последнее исправление: Pinkbyte (всего исправлений: 1)
Ответ на: комментарий от Pinkbyte

Ну так я ж не говорю, что везде одинаково держать, а просто такой лист, что должно быть в world, а чего нет, скажем, заносишь туда p7zip и при следующем обновлении мира он будет добавлен в world на все рабочие машины. Добавил -virtualbox – и все его вычеркнут. А индивидуальные пакеты как были так и пусть стоят.

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