среда, 12 августа 2009 г.

Установка Perforce (сервер)

На прошлой работе мы использовали Perforce, на теперешней- Clear Case и Subversion. Ну, Clear Case- это просто чудовищный монстр, а Subversion как-то странно смотрится после Perforce. К хорошему быстро привыкаешь, и я решил поставить Perforce дома. Лицензия на его использование не нужна, если число пользователей не больше двух, а рабочих пространств (workspace)- не более пяти. Должно хватить. Если в будущем не хватит, перейду на git.

Установка довольно подробно описана в Perforce System Administrator's Guide и прочих документах. Пример установки можно найти здесь, хотя он и не без ошибок. Я придерживался именно его, корректируя ключевые места по официальной документации. Вот что получилось.

Скачиваем Perforce с офф-сайта, нам понадабятся и сервер (p4d), и клиент (p4). Я также скачал грфические клиенты p4v для Windows и Linux (они пригодятся позже), а потом скопировал p4 и p4d на сервер через самбу.

Часть 1. Установка

Установка выполняется из-под рута. Дальше все команды начинаются с sudo, сейчас имеет смысл переключиться на root с помощью sudo su.

1. Переходим в директорию, куда скопировали p4 и p4d. Делаем их исполняемыми и переносим в директорию /usr/local/bin:

$ sudo chmod +x p4 p4d
$ sudo mv p4d /usr/local/bin
$ sudo mv p4 /usr/local/bin


2. Создаем суперпользователя perforce и группу p4admin. Суперпользователь perforce должен быть в группе p4admin:

$ sudo adduser perforce
$ sudo addgroup p4admin
$ sudo usermod -g p4admin perforce


3. Разрешаем суперпользователю perforce запускать sudo.

$ sudo visudo


Добавляем в конец файла строку
perforce ALL = ALL

4. Создаем директорию для хранения журнала и лога perforce:

$ sudo mkdir /var/log/perforce


5. Создаем директорию для хранения всей базы. Желательно держать базу на отдельном винте на случай, если винт сбойнет, тогда базу можно будет восстановить из журнала. У меня винт только один, так что без изысков:

$ sudo mkdir /perforce_depot

6. Изменяем права на исполняемые файлы и только что созданные директории. Нам нужно, чтобы пользователь perforce имел все права, а остальные- только на чтение и исполнение:

$ sudo chown perforce:p4admin /usr/local/bin/p4d
$ sudo chown perforce:p4admin /usr/local/bin/p4
$ sudo chown perforce:p4admin /perforce_depot
$ sudo chown perforce:p4admin /var/log/perforce
$ sudo chmod 755 /usr/local/bin/p4d
$ sudo chmod 755 /usr/local/bin/p4
$ sudo chmod 755 /perforce_depot
$ sudo chmod 755 /var/log/perforce

7. Записываем наши настройки в /etc/profile:

$ sudo vim /etc/profile

Добавляем в конец этого файла:
# Perforce Settings
export P4JOURNAL=/var/log/perforce/journal
export P4LOG=/var/log/perforce/p4err
export P4PORT=localhost:1666
export P4ROOT=/perforce_depot

export P4USER=perforce

8. Заставляем Perforce стартовать вместе со всей системой:

$ sudo apt-get install daemon
$ cd /etc/init.d

$ sudo vim perforce


Копируем туда вот эти строки:
#!/bin/sh -e

export P4JOURNAL=/var/log/perforce/journal
export P4LOG=/var/log/perforce/p4err
export P4ROOT=/perforce_depot
export P4PORT=1666

PATH="/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin"

. /lib/lsb/init-functions

p4start="p4d -d"
p4stop="p4 admin stop"
p4user=perforce

case "$1" in
start)
log_action_begin_msg "Starting Perforce Server"
daemon -u $p4user $p4start;
;;

stop)
log_action_begin_msg "Stopping Perforce Server"
daemon -u $p4user $p4stop;
;;

restart)
stop
start
;;

*)
echo "Usage: /etc/init.d/perforce (start|stop|restart)"
exit 1
;;

esac

exit 0

Изменяем права на файл perforce. Замечу, что этот файл дожен принадлежать root:

$ sudo chmod 755 perforce

Часть 2. Первый запуск.

Загружаемся как пользователь perforce и выполняем следующие команды.

1. Загружаем настройки:

$ sudo source /etc/profile

2. Запускаем сервер в бэкграунде (не из-под root):

$ p4d &

3. Создаем журнал:

$ p4d -jc

4. Устанавливаем права доступа для пользователей (я этого не делал, т.к. я- один-единственный реальный пользователь)- редактируем Perforce Protection Specification:

$ p4 protect

5. Создаем клента и сохраняем файл:

$ p4 client

6. Проверяем наши установки:

$ p4 info

7. Останавливаем сервер Perforce:

$ p4 admin stop

Осталось только перегрузить сервер.

Комментариев нет:

Отправить комментарий