Сегодня 30 апреля, вторник ГлавнаяНовостиО проектеЛичный кабинетПомощьКонтакты Сделать стартовойКарта сайтаНаписать администрации
Поиск по сайту
 
Ваше мнение
Какой рейтинг вас больше интересует?
 
 
 
 
 
Проголосовало: 7272
Кнопка
BlogRider.ru - Каталог блогов Рунета
получить код
librarian@blog:~$
librarian@blog:~$
Голосов: 2
Адрес блога: http://librarian.spb.ru
Добавлен: 2008-06-12 20:40:21 блограйдером ZaiSL
 

git+gitosis+gitweb(cgit) на Debian

2010-11-06 05:52:43 (читать в оригинале)

Небольшая инструкция описывающая установку описанного в теме комплекта на Debian Не буду рассказывать почему выбрал именно git для системы контроля версий - сам не знаю, скорее всего просто потому что пользоваться ей достаточно просто. По поводу остального - gitosis это единственное, что позволяет делать многопользовательский доступ, не требует висящего демона и просто настраивается. Выбор веб интерфейса остаётся за Вами, лично мне больше понравился cgit, он достаточно быстр и, в принципе, более функционален. Установка будет описывать работу именно с ним. Конфигурационный файл для gitweb я также добавлю в конце поста. Предполагается, что вебсервер уже установлен, папка, в которой будут располагаться папки виртхостов: /var/www, gitosis устанавливается в /srv/gitosis. Также предполагается, что имеются некоторые основы работы с ключами и вы понимаете различием между публичным и приватным ключом(применительно к SSH) Итак приступим Для начала добавим репозиторий, где лежит пакетик с cgit: echo "deb http://debian.stbuehler.de/debian/ stbuehler main" >> /etc/apt/sources.list
apt-key add --keyserver keys.gnupg.net --recv-keys 80121CD2479689D8
apt-get update
Установим необходимое ПО и будем разруливать настройки потихоньку: aptitude install git-core gitosis cgit Настроим gitosis: su gitosis
cd $HOME
Создадим ключик для того чтобы gitosis сам для себя мог делать изменения: ssh-keygen -t rsa
gitosis-init < .ssh/id_rsa.pub
Потом клонируем папку, в которой будет происходить настройка gitosis git clone git@localhost:gitosis-admin.git В папке /srv/gitosis будет создана папка gitosis-admin, с настройками программы. Заходим в неё, редактируем файл gitosis.conf и добавляем пользователей: [gitosis]
[group gitosis-admin]
writable = gitosis-admin
members = gitosis@server.name
[group repo1]
members = user1 user2
writable = repo_name
[repo repo2]
gitweb = yes
cgit = yes
owner = Owner name
description = server.name git repo
Добавление пользователей происходит очень просто, нужно просто добавить публичный ключ в папку gitosis-admin/keydir, например: echo "ssh-rsa ..... localuser@hostname" > keydir/user1.pub Это добавляет ключ для доступа пользователя user1 Применяем изменения: git commit -a -m "Info about added data"
git push
Затем создаём репозиторий: mkdir -p ../repositories/repo_name.git Переходим в него cd ../repositories/repo_name.git Выполняем инициализацию репозитория: git init У себя также делаем инициализацию, забираем репозиторий к себе и коммитим то, что нам нужно: cd projects/repo_name
git init
git remote add origin gitosis@server.name:repo_name.git
git pull origin master
git commit -a -m "initial commit"
git push origin master
Настраиваем Apache apitude install apache2 Добавляем в конфиг виртхоста: <VirtualHost *:80>
ServerAdmin webmaster@localhost
ServerName git.server.name
DocumentRoot /var/www/git.server.name/public/
DirectoryIndex index
Options Indexes FollowSymlinks ExecCGI
Alias /cgit.css /usr/share/cgit/cgit.css
Alias /cgit.png /usr/share/cgit/cgit.png
ScriptAlias /index /usr/lib/cgi-bin/cgit.cgi
<Directory "/var/www/git.server.name/public">
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^.* /index/$0 [L,PT]
</Directory>

ErrorLog /var/log/apache2/git.server.name.error.log
LogLevel warn
CustomLog /var/log/apache2/git.server.name.access.log combined

</VirtualHost>
Теперь создаём конфиг для cgit /etc/cgitrc virtual-root=/
enable-index-links=1
enable-log-filecount=1
enable-log-linecount=1
snapshots=tar.gz tar.bz2 zip
css=/cgit.css
logo=/cgit.png
root-title=git.server.name
#scan-path=/srv/gitosis/repositories

repo.url=repo_name.git
repo.path=/srv/gitosis/repositories/repo_name.git/
repo.desc=maxsites.ru repository
repo.owner=Maxsites Team
repo.clone-url=ssh://gitosis@server.name:repo_name.git
Если раскомментировать scan_path, то cgit будет брать все репозитории из папки, иначе нужно задавать их вручную, как я описал выше. Использование projects.list(то есть генерируемого списка на основе опции cgit=yes) возможно только на Gentoo, где включён в gitosis специальный патч, реализующий данную функциональность(надо будет на досуге покопаться). Для gitweb таких ограничений нет, там всё работает корректно из коробки. Вот содержимое файла /etc/gitweb.conf $projects_list = "/srv/gitosis/gitosis/projects.list";
$projectroot = '/srv/gitosis/repositories';
$gitosis_conf = '/srv/gitosis/repositories/gitosis-admin.git/gitosis.conf';
$export_ok = "";
$strict_export = "true";
Теперь перезапускаем Apache, идём на git.server.name и радуемся :)





 


Самый-самый блог
Блогер ЖЖ все стерпит
ЖЖ все стерпит
по количеству голосов (152) в категории «Истории»
Изменения рейтинга
Категория «Политика»
Взлеты Топ 5
+256
270
CAPTAIN
+215
287
badvista.org
+189
218
www.blogpr.ru - Лента постов
+184
235
СМИ 2.5
+177
215
Ksanexx
Падения Топ 5


Загрузка...Загрузка...
BlogRider.ru не имеет отношения к публикуемым в записях блогов материалам. Все записи
взяты из открытых общедоступных источников и являются собственностью их авторов.