0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Perforceの環境構築をしてみる WSL2編

Last updated at Posted at 2024-07-04

はじめに

「普段はUnityばっかり触っているが、そろそろUE勉強したい
どうせだったら現場でよく使われるバージョン管理構築して、一石二鳥したろ」
という軽い気持ちで始めてます
その為、間違いなど往々にしてあると思うので、あれば指摘してください

どうしてPerforceなの?Gitじゃダメなの?

「ダメじゃないけど、Perforceの方が適している」という感じです

Perforceには以下の特徴があります

UEではUnityに比べて巨大なファイルを扱うこと、バイナリファイルを扱うことも増えます
UEでの開発において、小規模であればGitを使用することの方が多いとは思いますが、大規模開発ではPerforceを採用していることが多いです

また、前述した通り、Perforceに関する構築をサポートしてくれるようなサイトも最近は増えてきており、個人でも学習しやすい環境になっています
それこそ、個人でPerforce環境を構築することにロマンを感じる...!

使う理由とは関係ないですが、基本的にはPerforceはSVNなどと同じ集中型になっています
(Perforceも頑張ればGitのような分散型もできる?(要勉強))

どうしてWSL2なの?

テスト環境で動かしてみてから実環境の構築をしたかったからです
それ以外に特に理由はないです
実環境での構築も改めて記事にする予定です

そもそもWSL2とは何ぞやって部分に関してはこちらを参照
https://www.pc-koubou.jp/magazine/40465

実装環境

Windows : Windows10 Pro
Linux : Ubuntu 22.04.3 LTS
Helix Core ServerVersion : 2023.4/2535420
Helix Visual Client(Windows用GUI) : 2023.4/2534624

PerforceServer自体はパッケージが分割されており、以下が存在します

  • helix-p4d
  • helix-p4dctl
  • helix-proxy
  • helix-broker
  • helix-cli

※現在は「Helix Core」という名称ですが、呼び方は「Perforce」で統一します

今回のゴール

PerforceServerをWSL2に構築し、実際に起動するところまで

WSL2環境を構築する

  • WSL2を有効にする

  1. コントロールパネル
  2. プログラム
  3. プログラムと機能
  4. Windowsの機能の有効化または無効化
  5. 「Windows Subsystem for Linux」にチェックを入れる
    1. Hyper-Vが有効になっていない場合は、これも有効にする
  6. 再起動
  • Ubuntuをインストールする
    WindowsStoreからインストールする
    インストール完了すると、Ubuntuの起動用アイコンが追加されるため、そこから起動する

PerforceServerのセットアップ

上記記事の「APT(Ubuntu)の場合」に沿って順にセットアップしていきます

perforce.pubkeyをAPTのキーリングに追加

wget -qO - https://package.perforce.com/perforce.pubkey | sudo apt-key add -

上記コマンドを実行することでperforce.pubkeyをダウンロードし、APTキーリングに追加されます
apt-keyは非推奨になり削除されるという話ですが、今回は公式の手順に沿って実装を行います

※APTについてはこちらを参照
https://weblabo.oscasierra.net/ubuntu-apt/

APTの追加

  1. /etc/apt/sources.list.d/perforce.listを作成
sudo touch /etc/apt/sources.list.d/perforce.list
  1. perforce.listを編集する ※今回はnanoコマンドを使用
sudo nano /etc/apt/sources.list.d/perforce.list
  1. perforce.listに以下の文言を追加
deb http://package.perforce.com/apt/ubuntu hogehoge release

hogehogeには、Ubuntuのバージョンに合わせた文言を入れてください
今回はUbuntu 22.04.3なのでJammyになります

  1. APTパッケージの更新
apt-get update

sudo apt updateでもいいですが、前述の通り公式の手順に沿います

PerforceServerの追加設定

P4D(PerforceServer)を起動し、初期設定を行います

上記記事を参考に設定していきます

設定用のスクリプトを実行する

sudo /opt/perforce/sbin/configure-helix-p4d.sh

サービス名

サービスの開始や停止で使用する名前
リポジトリ名という認識で問題なし
今回は「Hoge」にする

Perforce Service name [master]: Hoge

サーバルート(P4ROOT)

バージョン化ファイルおよびメタデータを保管するディレクトリ
指定したいディレクトリがなければデフォルトでOK([]に記載されているディレクトリ)

Perforce Server root (P4ROOT) [/opt/perforce/servers/Hoge]:
Create directory? (y/n) [y]: y

サーバのUnicodeモード

日本語コメントを残したいのでYにする

一度オンにするとオフに戻せないので注意

詳細はUnicode環境の構成と管理

Perforce Server unicode-mode (y/n) [n]: y

サーバの大文字と小文字の区別

区別させたくないのでNにする
UE以外で使う場合は基本Yでいい(はず)

追記 : UEでは文字の大小を区別しない(FName型)
オフにしないとバグの原因になるらしいので、注意

詳細は大文字と小文字の区別とマルチプラットフォーム開発

Perforce Server case-sensitive (y/n) [y]: n

サーバアドレス(P4PORT)

Helixサーバの待機対象となるホストとポート
通信をプレーンテキストまたはSSLのどちらで行うかを指定
詳細は通信ポート情報
環境や状況に合わせて設定する
今回はデフォルトのまま

Perforce Server address (P4PORT) [ssl:1666]:

スーパーユーザーの設定

スーパーユーザーに関する詳細はアクセスレベル
パスワードは大文字小文字混合か、数字混合の上、8文字以上必須

Perforce super-user login [super]: hoge
Perforce super-user password: HogeHoge

設定まとめ

Perforce Service name [master]: Hoge
Perforce Server root (P4ROOT) [/opt/perforce/servers/Hoge]:
Create directory? (y/n) [y]: y
Perforce Server unicode-mode (y/n) [n]: y
Perforce Server case-sensitive (y/n) [y]: n
Perforce Server address (P4PORT) [ssl:1666]:
Perforce super-user login [super]: hoge
Perforce super-user password: HogeHoge

P4D configuration has completed successfully.と表示されたら成功です
また、p4 infoで現在のPerforceServerの情報が見られます

番外編

ローカルネットワーク上の別端末からアクセスできるようにする

  1. PowerShellを管理者実行で起動
  2. ipconfigを実行
    WindowsのIPアドレス(IPv4 アドレス)とWSLのIPアドレスを確認する
  3. ファイアウォールとプロキシの設定を変更する
netsh advfirewall firewall add rule name="allow p4port" dir=in action=allow protocol=TCP localport=1666
netsh interface portproxy add v4tov4 listenaddress=windows_ip listenport=1666 connectaddress=wsl_ip connectport=1666

windows_ipとwsl_ipを先程ipconfigで確認したIPアドレスに書き換える

ポートフォワード設定を削除する場合は以下を実行する
netsh interface portproxy delete v4tov4 listenport=1666

最後に

今回はまだ最低限サーバーを構築したのみで、Perforceで何かをするところまでは行けてません
次回クライアント側で使用できるところまで構築していきます

次回

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?