Имя:    Пароль:      Помнить меня       
Unsorted   ~  Software  ~  Linux and Unix  ~  Есть желание наладить распределенную компиляцию? Посредством distcc
На страницу «  1, 2, 3  »
chaser
Сообщение  12 Окт 2008, 23:36  Ссылка : Ответить с цитатой
Возраст: 35 Пол: Мужской 
C нами с 04.02.2005
Репутация: 121.3

Поставил 4.1.3, при этом не удалял 4.2.3. Чтобы им воспользоваться, нужно установить CXX=g++-4.1 . Пока временно выключил демон, так как надо получше разобраться с вопросом безопасности (есть подозрение, что можно удаленно выполнить произвольную команду под юзером distccd, чего не очень хотелось бы).
В начало
Профиль : Фотоальбом : Блог : Личное Сообщение : JabberID
DALDON
Сообщение  13 Окт 2008, 8:32  Ссылка : Ответить с цитатой
Пол: Мужской  Доверенный пользователь
C нами с 09.04.2005
Репутация: 0.1

ZoRG, хорошо, вечром доустановлю нужные пакеты. В общем конечно не очень хорошо, что такие проблемы с gcc компиляторами.
В начало
Профиль : Фотоальбом : Блог : Личное Сообщение
splav
Сообщение  13 Окт 2008, 9:21  Ссылка : Ответить с цитатой
Возраст: 36 Пол: Мужской  Доверенный пользователь
C нами с 22.01.2006
Репутация: 256.8

DALDON, а как иначе? Там же меняется формат передачи параметров функций даже. Если даже он объектный файл получит, ld ничего не сможет сделать ил же полученное работать в любом случае не будет.

P.S. конечно можно обновить до 4.3 - дома система стоит чисто на 4.3 - всё замечательно работает, правда часть пришлось из нестабильного ставить, чтобы собралось.
В начало
Профиль : Фотоальбом : Блог : Личное Сообщение : JabberID : ICQ
DALDON
Сообщение  13 Окт 2008, 9:58  Ссылка : Ответить с цитатой
Пол: Мужской  Доверенный пользователь
C нами с 09.04.2005
Репутация: 0.1

splav, ну потяно дело коненчо. К любой программе как правило указываеться необходимая версия компилятора gcc... Но как правило конечно это дело обратно совместимо.
В начало
Профиль : Фотоальбом : Блог : Личное Сообщение
splav
Сообщение  13 Окт 2008, 10:11  Ссылка : Ответить с цитатой
Возраст: 36 Пол: Мужской  Доверенный пользователь
C нами с 22.01.2006
Репутация: 256.8

DALDON, так оно и совместимо, но собрать часть gcc 4.1.*, часть 4.3.* а часть 4.2.* и всё это слинковать - работать естественно не будет.
В начало
Профиль : Фотоальбом : Блог : Личное Сообщение : JabberID : ICQ
DALDON
Сообщение  13 Окт 2008, 12:23  Ссылка : Ответить с цитатой
Пол: Мужской  Доверенный пользователь
C нами с 09.04.2005
Репутация: 0.1

А ну точно... Это очень не есть хорошо, значит для использования Ситсемы надо убедиться, что у всех машин-помощников одна версия компилятора, что есть трудоёмкий процесс. Который не стоит того времени которое выиграешь от компиляции таким образом если не большое приложение. Хотя я думаю, что есть какое-либо решение вопроса чтобы помощники выбирались сами исходя из версии gcc.
В начало
Профиль : Фотоальбом : Блог : Личное Сообщение
снеговик
Сообщение  13 Окт 2008, 13:20  Ссылка : Ответить с цитатой
Возраст: 41 Пол: Мужской 
C нами с 08.04.2005
Репутация: 96.4

Отдам на растерзание АМД Феном Х4 2.3 ГГц, работает в основном днём (idle 100%).
От вас - список пакетов, которые надо установить, и настройки.
ОС - федора 9 i386.

_____________________________

в следующей жизни мечтаю стать сиденьем на женском велосипеде
В начало
Профиль : Фотоальбом : Блог : Личное Сообщение
chaser
Сообщение  13 Окт 2008, 15:47  Ссылка : Ответить с цитатой
Возраст: 35 Пол: Мужской 
C нами с 04.02.2005
Репутация: 121.3

Все, запустил снова демон, на этот раз под chroot'ом. Улыбочка gcc & g++ 4.1 и 4.2, компилит 32- и 64-битный код.
В начало
Профиль : Фотоальбом : Блог : Личное Сообщение : JabberID
ZoRG
Сообщение  13 Окт 2008, 17:17  Ссылка : Ответить с цитатой
Возраст: 37 Пол: Мужской 
C нами с 14.10.2004
Репутация: 94.1

DALDON писал(а):
Хотя я думаю, что есть какое-либо решение вопроса чтобы помощники выбирались сами исходя из версии gcc.
Ну, например, можно просто договориться, что у всех, кто расшаривает distcc в /opt/distcc_gcc стоит какая-то единая версия компилятора. Тогда проблем не будет.

снеговик писал(а):
Отдам на растерзание АМД Феном Х4 2.3 ГГц, работает в основном днём (idle 100%).
От вас - список пакетов, которые надо установить, и настройки.
ОС - федора 9 i386.
Не знаю как в федоре, но для Ubuntu я описал процесс установки - http://unsorted.ru/viewtopic.php?p=565735#565735 . Думаю, там пакеты так же называются.
В начало
Профиль : Блог : Личное Сообщение : E-mail
DALDON
Сообщение  13 Окт 2008, 17:33  Ссылка : Ответить с цитатой
Пол: Мужской  Доверенный пользователь
C нами с 09.04.2005
Репутация: 0.1

ZoRG, ну давайте, how-to как ставить туда компилятор, и как его туда прикрутить. И я думаю, что будет отлично всё.

apt-get install build-essential кстати сделал, можно снова попробывать.
В начало
Профиль : Фотоальбом : Блог : Личное Сообщение
ZoRG
Сообщение  13 Окт 2008, 19:59  Ссылка : Ответить с цитатой
Возраст: 37 Пол: Мужской 
C нами с 14.10.2004
Репутация: 94.1

DALDON писал(а):
apt-get install build-essential кстати сделал, можно снова попробывать.
Теперь отлично работает.

DALDON писал(а):
ZoRG, ну давайте, how-to как ставить туда компилятор, и как его туда прикрутить. И я думаю, что будет отлично всё.
Думаю, к примеру,
apt-get install gcc-4.1 g++-4.1
ln -s /usr/bin/gcc-4.1 /opt/distcc_gcc
ln -s /usr/bin/g++-4.1 /opt/distcc_g++
вполне будет достаточно.
В начало
Профиль : Блог : Личное Сообщение : E-mail
DALDON
Сообщение  13 Окт 2008, 20:13  Ссылка : Ответить с цитатой
Пол: Мужской  Доверенный пользователь
C нами с 09.04.2005
Репутация: 0.1

ZoRG, ну и славненько, не думал, что всё так банально.

Ну в общем можно пользоваться. Юзер

chaser, ZoRG, а в правду велика возможность удалённого исполнения кода из-под пользователя distcc..?

Если реально есть опасность то может есть смысл и в правду в chroot запускать..?

chaser, ну тоже можно в таком случае how-to.


И потом можно забабахать в верхнее сообщение топика всё это дело, чтобы мог присоединиться любой желающий к нам.
В начало
Профиль : Фотоальбом : Блог : Личное Сообщение
chaser
Сообщение  13 Окт 2008, 20:52  Ссылка : Ответить с цитатой
Возраст: 35 Пол: Мужской 
C нами с 04.02.2005
Репутация: 121.3

DALDON писал(а):
ZoRG, ну и славненько, не думал, что всё так банально.

Ну в общем можно пользоваться. Юзер

chaser, ZoRG, а в правду велика возможность удалённого исполнения кода из-под пользователя distcc..?

Если реально есть опасность то может есть смысл и в правду в chroot запускать..?

chaser, ну тоже можно в таком случае how-to.


Вот тут написано, что эта возможность есть:
http://distcc.samba.org/security.html

Как сделать chroot:
1) Ставим "игрушечную" систему:
sudo apt-get install debootstrap
sudo mkdir /somewhere/distcc
sudo debootstrap lenny /somewhere/distcc

2) Если в системе нет пользователя distccd, добавляем его:
sudo adduser —system —no-create-home —ingroup nogroup —disabled-password —disabled-login distccd

3) Идем в "игрушечную" систему и ставим там все нужное (Осторожно, трафик!):
sudo chroot /somewhere/distcc
apt-get update
apt-get install distcc g++-4.1 g++-4.2
exit

4) Смотрим ID юзера distccd:
id -u distccd
и меняем на него соответствующий ID в файле /somewhere/distcc/etc/passwd

5) Если distcc не установлен в основной системе:
sudo cp /somewhere/distcc/etc/init.d/distcc /etc/init.d/distcc
sudo cp /somewhere/distcc/etc/default/distcc /etc/default/distcc

6) Редактируем /etc/init.d/distcc должным образом (можно взять мой вариант из аттачмента, поправив в нем переменную CHROOT_PATH)

7) Редактируем /etc/default/distcc по вкусу

8) Если distcc не установлен в основной системе, добавляем инит-скрипт:
sudo chmod +x /etc/init.d/distcc
sudo update-rc.d distccd defaults

Наверняка что-то забыл)

P. S.: тут форум заменил все двойные дефисы на тире, так что при копировании в терминал будьте бдительны (во 2-м пункте)




distccd-chroot init script
distcc.txt - 2.91 Kб
Скачиваний: 3

В начало
Профиль : Фотоальбом : Блог : Личное Сообщение : JabberID
ZoRG
Сообщение  13 Окт 2008, 21:26  Ссылка : Ответить с цитатой
Возраст: 37 Пол: Мужской 
C нами с 14.10.2004
Репутация: 94.1

chaser, спасибо за HowTo. Улыбочка Никогда раньше подобными вещами не занимался и не думал, что есть способ так быстро создать систему-песочницу - может потом пригодиться для сборки пакетов.
В начало
Профиль : Блог : Личное Сообщение : E-mail
ZoRG
Сообщение  14 Окт 2008, 20:42  Ссылка : Ответить с цитатой
Возраст: 37 Пол: Мужской 
C нами с 14.10.2004
Репутация: 94.1

Вообщем в таком случае предлагаю всем для distcc использовать версию gcc-4.1, как наиболее распространенную среди всех нас, и в таком случае просьба сделать ссылки
ln -s /usr/bin/gcc-4.1 /opt/distcc_gcc
ln -s /usr/bin/g++-4.1 /opt/distcc_g++
чтобы на всех компьютерах до него можно было добраться по одному адресу. А то получается полная неразбериха с путями - на offline.progtech.ru, daldon.progtech.ru и chaser.progtech.ru компилятор лежит в /usr/bin/g++-4.1, а на unsorted.ru и zapas.progtech.ru в /usr/bin/g++-4.1.2.
В начало
Профиль : Блог : Личное Сообщение : E-mail
Показать сообщения:   
На страницу «  1, 2, 3  »

Unsorted   ~  Software  ~  Linux and Unix  ~  Есть желание наладить распределенную компиляцию?

Ответить на тему

Перейти:  





Powered by phpBB   © Unsorted Team  support@unsorted.me  promo@unsorted.me  Полезные скрипты