[SCM]源碼管理 – perforce server的Linux的安裝

來源:互聯網
上載者:User

 

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的時候老是起不來)

 

完!

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.