perforce的Linux的安裝
一 安裝前配置
1) 機器配置
修改機器名
申請靜態ip和dns上此ip到機器名的映射。
2) 使用者配置
在root下建立使用者組,使用者和所在的home目錄。
建立perforce group :
/usr/sbin/groupadd perforceg
建立perforce user:
mkdir /local
mkdir /local/perforce
/usr/sbin/useradd -m -d /local/perforce -g perforceg perforce
修改perforce user的密碼:
/usr/bin/passwd perforce (輸入123)
查看建立的使用者perforce的資訊:
id perforce
uid=504(perforce) gid=504(perforceg) groups=504(perforceg)
修改home目錄的owner:
chown perforce:perforceg /local/perforce
3) perforce server 的目錄
su - perforce
mkdir /local/perforce/p4root
mkdir /local/perforce/log
mkdir /local/perforce/journal
[通常地p4root,log,journal需要掛載到不同的物理硬碟,來避免災難事故的影響]
4)設定使用者的su和sudo為不要求輸入密碼
參考:設定su和sudo為不要求輸入密碼
二 下載和安裝
0) 安裝好後的檔案和目錄如下:
-bash-3.2$ pwd
/local/perforce
-bash-3.2$ ls -l
總計 3120
drwxr-xr-x 2 perforce perforceg 4096 2011-02-15 Desktop
drwxr-xr-x 2 perforce perforceg 4096 08-18 19:01 journal
drwxr-xr-x 2 perforce perforceg 4096 08-18 18:51 log
-rwxr-xr-x 1 perforce perforceg 777652 08-18 18:37 p4
-rwxr-xr-x 1 perforce perforceg 2381536 08-18 18:45 p4d
drwxr-xr-x 2 perforce perforceg 4096 08-19 13:02 p4root
-rwxr-xr-x 1 perforce perforceg 982 08-19 13:39 p4server001
-rw-r--r-- 1 perforce perforceg 366 08-19 13:28 p4server001.ini
1)安裝
在perforce的download頁面上找到P4D和p4的Linux下載檔案。
chmod +x p4d
chmod +x p4
將p4d和p4拷貝到/local/perforce下
2)p4d的設定檔
/local/perforce/p4server001.ini# This will be configure file for p4 server,
# and it need be $USERHOME/$P4SERVERNAME.ini
USER=perforce
USERHOME=/local/perforce
P4USER=perforce
P4PASSWD=123
P4SERVERNAME=p4server001
p4=$USERHOME/p4
p4d=$USERHOME/p4d
P4PORT=10.148.151.98:1666
P4ROOT=$USERHOME/p4root
JOURNAL=$USERHOME/journal
LOG=$USERHOME/log/p4server001.log
TRACKLEVEL=1
SERVERLEVEL=2
3) 啟動指令碼/local/perforce/p4server001,將p4server001拷貝到/etc/init.d下,命令為cp /local/perforce/p4server001 /etc/init.d/。
參考:http://www.xueai.org/2010/11/110.html
#!/bin/bash
#
# chkconfig:1235 80 80
# description: p4server001 daemon
#
PATH=/sbin:/bin:/usr/bin:/usr/sbin
# Source in the configs...
. /local/perforce/p4server001.ini
SU="su $USER -c"
LOCKFILE=$USERHOME/$P4SERVERNAME.lock
start() {
STARTCMD="$p4d -d -v server=$SERVERLEVEL,track=$TRACKLEVEL -p $P4PORT -r $P4ROOT -L $LOG -J $JOURNAL"
$SU "$STARTCMD" 2>&1
touch $LOCKFILE
$SU "logger p4d starting"
echo "p4d was started on" `hostname -s`
}
stop() {
STOPCMD="$p4 -p $P4PORT -u $P4USER admin stop"
echo $P4PASSWD | $p4 -p $P4PORT -u $P4USER login
$SU "$STOPCMD" 2>&1
rm $LOCKFILE
$SU "logger p4d stopping"
echo "p4d was stopped on" `hostname -s`
}
status() {
if [ -f $LOCKFILE ];
then
echo p4d status: running
else
echo p4d status: stopped
fi
}
case "$1" in
'start')
start
;;
'stop')
stop
;;
'status')
status
;;
*)
echo "Usage: p4server001 { start | stop | status }"
;;
esac
4) 啟動p4d
$su - perforce
-bash-3.2$ /etc/init.d/p4server001 start
Perforce Server starting...
p4d was started on machinie
也可以使用命令來啟動:
/sbin/service p4server001 start
5) 查看
/etc/init.d/p4server001 status
p4d status: running
或
ps -ef | grep p4d perforce 30898 1 0 14:04 ? 00:00:00 /local/perforce/p4d -d -v server=2,track=1 -p 10.148.151.98:1666 -r /local/perforce/p4root -L /local/perforce/log/p4server001.log -J /local/perforce/journal/journal
至此可以在遠端機器上使用p4v或p4來訪問此p4server了。
三 最佳化
1) 配置為daemon,當機器重啟後能自動運行
使用chkconfig,指令碼前必須有如下的行:
#!/bin/bash
#
# chkconfig:1235 80 80
# description: p4server001 daemon
#
安裝chkconfig,命令為yum install chkconfig
將上面的p4server001配置為daemon,命令為:
su -
/sbin/chkconfig --add p4server001
安裝後查看:
/sbin/chkconfig --list | grep p4server001
p4server001 0:關閉 1:啟用 2:啟用 3:啟用 4:關閉 5:啟用 6:關閉
四 配置inetd 或xinetd, 使p4 server只有有request的時候才啟動,需要使用p4d 的-i參數支援inetd,如果使用inetd或xinetd,則不需要前面的daemon的配置了,因為不需要p4d在機器啟動的時候就啟動。
參考:
http://kb.perforce.com/article/45/running-a-perforce-server-from-inetd-on-unixhttp://hints.macworld.com/article.php?story=20041112174525470
在檔案中/etc/services
中增加:
p4server001 1666/tcp
#netview-aix-6 1666/udp # netview-aix-6
p4server001 1666/tcp # Perforce Server
#netview-aix-6 1666/tcp # netview-aix-6
然後建立/etc/xinetd.d/p4server001
,且內容為:
service p4server001
{
socket_type = stream
wait = no
user = perforce
server = /local/perforce/p4d
server_args = -i -L /local/perforce/log/p4server001.log -r /local/perforce/p4root -p 10.148.151.98:1888 -J /local/perforce/journal/journal
disable = no
}
可以在遠端機器上登入10.148.151.98:1888,然後在server上查看進程ps -ef | grep p4d,如下:
perforce 11778 11776 0 19:20 ? 00:00:00 p4d -i -L /local/perforce/log/p4server001.log -r /local/perforce/p4root -p 10.148.151.98:1888 -J /local/perforce/journal/journal
注意: xinetd監聽1666連接埠,然後當1666連接埠有請求時啟動的p4d運行在1888連接埠。(這裡不知道為啥想設定server運行在1666的時候老是起不來)
完!