Perforce
Installation über die Paketverwaltung vom Linux
- Je nach Distribution muss man erstmal den public-Key des Repos importieren
- Dann fügt man seiner Paketverwaltung das Repository von Perforce hinzu (siehe Details im Link oben)
- 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.
-
export P4SSLDIR=/Users/Perforce/ssl
-
- 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
- Ich musste den Befehl zum Generieren des Zertifikates und Schlüssels als root ausführen.
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.