Может кому пригодится …
Подготовка к установке gitolite-gentoo (~amd64 or ~x86 в зависимости от архитектуры) :
echo 'dev-vcs/gitolite-gentoo tools' >> /etc/portage/package.use/custom
echo '=dev-vcs/gitolite-gentoo-3.6.2.3 ~amd64' >> /etc/portage/package.keywords/custom
Установка :
emerge gitolite-gentoo
Создаём ключи для root gitolite-admin :
#ssh-keygen -t rsa
Создаём ключи для пользователя :
$ssh-keygen -t rsa
$cd ~/.ssh
$mkdir key
$cp id_rsa key && cp id_rsa.pub key
$cd key && mv id_rsa имя_пользователя && mv id_rsa.pub имя_пользователя.pub
$cp имя_пользователя .. && cp имя_пользователя.pub .. && cd .. && rm key
копируем открытый ключ root’a допустим в /temp :
#cp /root/.ssh/id_rsa.pub /tmp/id_rsa.pub
Инициируем gitolite :
#su git
$cd
$ gitolite setup -pk /tmp/id_rsa.pub
$exit
Удаляем ключ из /temp :
#rm /tmp/id_rsa.pub
Настройка gitolite-admin (создание репо и добавление пользователя )
* для клонированных gitolite-admin.git , своего.git , calculate.git , portage.git я использовал свободный раздел на hdd reiserfs (куда клонировать будете вы - решать Вам ) :
#mkdir /mnt/git
#mount /dev/sda2 /mnt/git
#cd /mnt/git
Клонируем директорию с настройками :
#git clone git@имя_сервера:gitolite-admin.git
* имя_сервера я заменил на ip
Переходим в директорию с настройками :
#cd gitolite-admin
Копируем пользовательский открытый ключ в директорию /mnt/git/gitolite-admin/keydir
# cp /home/user/.ssh/имя_пользователя.pub /mnt/git/gitolite-admin/keydir
Настраиваем репо для пользователя имя_пользователя
#nano conf/gitolite.conf
repo gitolite-admin
RW+ = id_rsa
repo project1
RW+ = testuser@remotehost
приводим к виду :
repo gitolite-admin
RW+ = id_rsa
repo calculate
RW+ = имя_пользователя
R = @all
repo portage
RW+ = имя_пользователя
R = @all
repo название_вашего_профиля
RW+ = имя_пользователя
R = @all
repo distros
RW+ = имя_пользователя
R = @all
сохраняем и выполняем :
#git add . && git commit -m "ваш_коментарий" && git push origin master
Проверка sshd (тут я напишу только то , что относится к теме … материалов по настройке ssh в гугле море) :
Демон sshd должен быть запущен.
Должен быть разрешен доступ по ssh пользователю git , файл /etc/ssh/sshd_config
# echo 'AllowUsers git' >> /etc/ssh/sshd_config
Настройка git-daemon (тут я сделал немного по своему ибо апача у меня нету) :
#nano /etc/conf.d/git-daemon
GITDAEMON_OPTS="--syslog --port=9418 --base-path=/var/lib/gitolite/repositories/ --export-all"
GIT_USER="git"
Клонирование репо пользователя :
$ cd /mnt/git && git clone ssh://git@имя_сервера/calculate.git && git clone ssh://git@имя_сервера/portage.git && git clone ssh://git@имя_сервера/название_вашего_профиля.git && git clone ssh://git@имя_сервера/distros.git
- Описание создания своего профиля есть на планете Calculate http://www.calculate-linux.ru/blogs/ru/488/show
- Заполнение для calculate.git/distros.git берём с калькогита http://git.calculate.ru/?p=calculate/overlay.git;a=summary и http://git.calculate.ru/?p=calculate/distros.git;a=summary (кликаем на snapshot)
- Заполнение для portage.git можно взять с калькогита или mirror.yandex.ru http://git.calculate.ru/?p=calculate/portage.git;a=summary и http://mirror.yandex.ru/gentoo-distfiles/snapshots/
- дистрос можно не делать … но это всего лишь моё решение ))
Пример calculate.env из моего профиля (ип конечно же без звёздочек) :
[main]
cl_template_location = clsm,local,remote
cl_template_path = /var/lib/layman/clsm/profiles/templates,/var/calculate/templates,/var/calculate/remote/templates
[update]
cl_update_rep_name = clsm , portage , calculate
cl_update_rep_url = git://10.*.*.*/clsm.git,git://10.*.*.*/portage.git,git://10.*.*.*/calculate.git
и шаблон /var/lib/layman/clsm/profiles/templates/3.3/2_ac_install_merge/sys-apps/portage/alpha190/01repos.conf
# Calculate format=samba path=/usr/share/portage/config name=repos.conf
[gentoo]
sync-type = git
sync-uri = git://git@clsm/portage.git
auto-sync = no
- Было бы не лишним шаблончик для /etc/portage/make.conf/custom1.conf c переопределением GENTOO_MIRRORS=“ftp://свой_ftp/” … кто делает сборки более чем для 1 машины (или планирует делать) поймёт для чего это
Пример переход на свой профиль :
cl-update-profile --url 10.*.*.*/clsm.git list
Профиль системы:
[CLSM] clsm:CLSM/amd64
[cli] clsm:cli/amd64
cl-update-profile --url=10.*.*.*/clsm.git CLSM
Репозиторий
* Название репозитория: clsm
* Ветка репозитория: master
Профиль
* Профиль системы: clsm:CLSM/amd64
* Название дистрибутива: CLSM 14.12.1 'alpha'
* Используемые репозитории:
+---------+-------------------------------+
|Название |URL |
+---------+-------------------------------+
|calculate|git://10.*.*.*/calculate.git|
|portage |git://10.*.*.*/portage.git |
|clsm |git://10.*.*.*/clsm.git |
+---------+-------------------------------+
* Список пакетов системы: Обновить
* Пропустить настройку системы: нет
Запустить процесс? (Yes/No): y
* Перенос репозитория ... [ ok ]
Синхронизация репозиториев
* Синхронизация Calculate репозитория ... [ ok ]
* Синхронизация Portage репозитория ... [ ok ]
* Синхронизация Clsm репозитория ... [ ok ]
* Синхронизация завершена
Настройка профиля
* Переключение на CLSM профиль ... [ ok ]
* Исправление настроек ... [ ok ]
* Конфигурирование системы ...
* Updating desktop database
* Обновление кэша иконок
* Создание Host-Only initramfs ...
* Host-Only initramfs создан
* Конфигурирование grub
* Обновление конфигурационных файлов ... [ ok ]
* Обновление профиля завершено успешно
cl-update-profile --url 10.*.*.*/clsm.git list
Профиль системы:
[CLSM] clsm:CLSM/amd64 *
[cli] clsm:cli/amd64
Заключение
В итоге мы имеем возможность :
- сделать у себя calculate-lib:2.2.git и тд , клонировать с кальки наполнение , изменить в соотвествии с вашими требованиями , сделать ебилд и не парится с патчами из-за засады со своим названием дистра (надеюсь это скоро решат)
- или выполнять cl-make -u без наличия интернета но с зеркалом гентушным в локалке (в моём случае)
3)Полный контроль над обновлением систем(ы) - что положил/разрешил то и взял
ps. Огромное спасибо разработчикам Calculate за шикарный продукт … заложенные возможности и понятность (понятность для простого пользователя как я) их использования очень радуют !
pps. Извиняюсь за орфографию
использовал материалы :
http://git-scm.com/book/ru/v1/Git-на-сервере-Gitolite
и
http://www.calculate-linux.org/main/ru/gitolite