Skip to main content

Perforce

Installation über die Paketverwaltung vom Linux

Linux Repo Pakete

  1. Je nach Distribution muss man erstmal den public-Key des Repos importieren
  2. Dann fügt man seiner Paketverwaltung das Repository von Perforce hinzu (siehe Details im Link oben)
  3. Installiert wie gewohnt das Paket von Perforce über eure Paketverwaltung

Probleme mit dem Pubkey von perforce

Die Seite von Perforce funktioniert so leider nicht fehlerfrei:
https://www.perforce.com/perforce-packages
Dort steht der folgende Befehl zum Hinzufügen des Pubkeys:

root@server:/#wget -q -O - https://package.perforce.com/perforce.pubkey | sudo apt-key add -
gpg: no valid OpenPGP data found.

Leider kommt da aber nur oben genannte Fehlermeldung.

Dieser Befehl machts möglich:

wget -q http://package.perforce.com/perforce.pubkey -O- | sudo apt-key add -
OK

Konfiguration

Ich empfehle für die Perforceinstanz eine eigene Konfig-Datei anzulegen. Diese werden automatisch importiert.
Meine Konfig sieht so aus:

p4d main
{
  Owner          =        perforce
  Execute        =        /opt/perforce/sbin/p4d
  Prefix         =        /var/lib/perforce/p4-main/main
  Environment
  {
   P4ROOT      =        /Pfad-zu-deinem-Repo/perforce/p4-main
   P4JOURNAL   =        journal
   P4PORT      =        ssl:1666
   P4SSLDIR    =        /Pfad-zu-deinen-SSL-Zertifikaten/perforce/ssl
   PATH        =        /bin:/usr/bin:/usr/local/bin:/opt/perforce/sbin
  }
}

Fehler

P4SSLDIR

  • P4SSLDIR not defined or does not reference a valid directory.
  • P4SSLDIR or credentials files not owned by Perforce process effective user.
    • Ich musste den Befehl zum Generieren des Zertifikates und Schlüssels als root ausführen. p4d -Gc

Autostart

Perforce legt automatisch auch Autostartskripte unter /etc/init.d/ ab. Somit sollte euer Perforcce auch nach jedem Reboot wieder verfügbar sein.

SSL Zertifikate von letsencrypt benutzen

Ich habe in meinem Plesk das Addon letsencrypt installiert und möchte gerne dessen Zertifikate für meine Dienste verwenden.
Da es damit einige Arbeit auf sich hat, habe ich mir ein Skript geschrieben, das die Arbeit für mich macht.

 #!/bin/bash
 #-----------------
 #INITIALIZE
 #-----------------
 #script for automate the use of letsencrypt SSL certs
 #path of letsencrypt certs: /usr/local/psa/var/modules/letsencrypt/etc
 #path in my case:
 lepath=/usr/local/psa/var/modules/letsencrypt/etc/live/freakylabs.de/
 
 #certificate:
 lecert=cert.pem
 #private key:
 lekey=privkey.pem
 
 #Perfoce SSL dir
 p4dssldir=/etc/perforce/ssl/
 #Perforce certificate name
 p4dcert=certificate.txt
 #Perforce private key name
 p4dkey=privatekey.txt
 #-----------------
 
 #-----------------
 #WORK PROCESS

 #-----------------
 #STOP perforce
 /etc/init.d/perforce-p4dctl stop
 
 #backup old cert files
 mv -f $p4dssldir$p4dcert $p4dssldir$p4dcert.bak.$(date +$F)
 mv -f $p4dssldir$p4dkey $p4dssldir$p4dkey.bak.$(date +$F)
 
 #copy the letsencrypt SSL certificates to the P4d SSLDIR
 cp -f $lepath$lecert $p4dssldir$p4dcert
 cp -f $lepath$lekey $p4dssldir$p4dkey
 
 #change the owner of new copied files to the perforce user
 chown perforce:perforce $p4dssldir$p4dcert $p4dssldir$p4dkey
 
 #change permissions of new copied files to fits perforce rules
 chmod 400 $p4dssldir$p4dcert $p4dssldir$p4dkey
 
 #START perforce
 /etc/init.d/perforce-p4dctl start

Problembehandlung

Perforce blockiert apt-get update

Meine User Story

Beim Installieren von Perforce hatte ich so meine Schwierigkeiten, weil ich das System zuvor noch nie installiert hatte.
Da ich immer versuche Software über die Debianpaketverwaltung zu installieren, habe ich das für Perforce auch versucht. Die Installation funktionierte auch aber danach stand ich auf verlorenem Posten, weil ich es nicht konfiguriert bekommen habe. Nach einiger Zeit fand ich dann über Google ein GIT Repository von jmd, der einen sog. Installer bereitgestellt hat. Also habe ich mir diesen auf meinen VServer heruntergeladen und ausprobiert. Der Installer hat mir eine Perforce Version heruntergeladen und eingerichtet. Jetzt konnte ich Perforce nutzen.
Nach einiger Zeit wollte ich dann wieder mal Updates auf dem VServer installieren und bekam immer die Fehlermeldung von apt-get update bzw. auch von aptitude update:

Error: Sub-process /usr/bin/dpkg returned an error code (1)
/etc/perforce/p4dctl.conf -> No such directory or file found.

Die Lösung war nach langem Rumprobieren und Suchen im Internet eigentlich total einfach und ich bin erst nach Tagen selber drauf gekommen als ich es einfach ausprobiert habe. 

Lösung

Ich habe mir dann nach der erfolglosen Suche einfach gedacht ob es reicht wenn ich die fehlende Ordnerstruktur und die Datei erstelle.
Und genau das hat geklappt.

root@server#mkdir /etc/perforce
root@server#touch p4dctl.conf

Danach konnte ich dann die bei mir installierten Debian Perforcepakete deinstallieren.<

Zukunft

Zufrieden bin ich mit der Lösung natürlich noch nicht. Bei Gelegenheit wird das manuell durch den Installer eingerichtete Perforce gelöscht und nochmal sauber über die Debianpaketverwaltung neuinstalliert und eingerichtet.