2016-09-28 27 views
2

mac os x sierraにアップデートした後、私のcvs(はい、まだcvsを使用しています)リポジトリにリモートコンピュータからアクセスできなくなりました。私はcvsがリモート端末からmac os x sierraで動作しなくなった

export CVS_RSH=ssh 
export CVSROOT=:ext:[email protected]/usr/local/cvsrep 

でCVS変数を定義した場合、それはまた、エラーメッセージを与えて、動作しませんが

CVSROOT=/usr/local/cvsrep 

を::

私はまだ使用して、ターミナルウィンドウを使用して、ローカルマシン上でcvsコマンドにアクセスすることができます
tw-imac:testcvs twarren$ cvs version 
Client: Concurrent Versions System (CVS) 1.12.13 (client/server) 
Password: 
bash: cvs: command not found 

cvsプログラムは、/ usr/local/bin(PATH上にあります)にインストールされています。 Mac OS Xに付属していた古いバージョンのcvsで、Mac OS Xの新しいバージョンでsierraまでうまく動作しています。

+0

同じ問題を、私は自宅でcvsをインストールしようとしましたが、まだ動作していません –

+0

はい、問題は、ssh認証が成功した後に開始されるbashシェルに/ usr/local/binディレクトリが含まれていないため、「cvsコマンドが見つかりません」というエラーが発生しているようです。 – user2132980

答えて

0

使用homebrew(あなたはそれを持っていない場合には自作取得)再インストールCVSに、ので、あなたの端子に入力します。

醸造は、私はそう

+0

私のために働かなかった。 – user2132980

2

を動作するはずCVS

をインストールcvsをシエラで動かす方法を見つけました。この問題は、/ usr/local/binディレクトリがsshによって起動されたシェルのパス上に存在しなくなったように見えます。したがって、ソリューションはcvs実行ファイルを/ usr/binにコピーすることから成っていました。

しかし、これをSierraで実現するためには、一時的にSIPを無効にする必要がありました。それから私は、CVSプログラムをコピーすることができ

  • リブート
  • を無効csrutil:

  • が実行リカバリモード
  • 実行端子ユーティリティで

    1. 、再起動:これは、によって行われました。正常に動作していることを確認した後、ステップ3で:csrutil enableを使用する以外は、手順1〜4を繰り返しました。

      注:Sierraのアップデートによって/ usr/binの内容が置き換えられる場合があります。このプロセスは更新後に繰り返される必要があることに注意してください。これを助けるために、私はcvsモジュールを移動するのではなくコピーしたので、それはまだ古い場所で利用可能です。

      注2:cvsではなくgitを使用することをお勧めし、すべての新しいプロジェクトでこれを行うことに同意します。さらに、私は最終的に既存のプロジェクトを可能な限りgitに変換しますが、シエラの前のようにCVSを使用できることをうれしく思います。

  • +0

    素晴らしい!私のために働いた。ファイルをコピーした後でSIPを再度有効にすることを忘れないでください! –

    1

    私はこの同じ問題に直面しました。

    つまり、リモートCVSチェックアウトは機能しません。

    すなわち、cvs: bad command

    cvs -z3 -d:ext:<user>@<cvs-server-ip>:<CVSROOT> co -P -r <REVISION> <MODULE>結果三つの問題がありますが、

    1. CVSは10に戻って削除されました。9
    2. svd上のcvsは、ハードコードされたsshd PATHサポートに依存します。
    3. /usr/binはルートレスです。つまり、読み取り専用です。

    あなたは自作参照をインストール自作

    • でCVSをインストールすることにより、最初の問題を解決:https://brew.sh
    • を、その後brew install cvs

    次の問題は、あなたがしようとするということですcvs:extを実行するには、PATHが正しくないことがわかります、これは次のようにテストできます:

    ssh <user>@cvs-sever-ip env | grep PATH

    あなたはsshdの非対話型のハードコーディングされたパスである、PATH=/usr/bin:/bin:/usr/sbin:/sbin、表示されます。 CVSがhomebrew cvs install(/ usr/local/bin/cvsにインストール)にアクセスするために使用する非対話型sshでは、/ usr/local/binをsshdパスに追加する必要があります。 AFAICTこれはできません...さほど重要ではありません。だから、最良の解決策は、/ usr/binディレクトリにシボリリンクを作ることです。第三の問題につながる

    sudo ln -s /usr/local/bin/cvs /usr/bin/cvs

    。/usr/binはルートレスなので読み込み専用であるため動作しません。

    リカバリモードでルートレスモードを無効にしてから、再起動することができます。

    しかし、最も簡単な解決策は、ブートボリューム上の/ usr/binディレクトリに移動し、その後、回復モードで再起動ターミナルを入力し、[CD /ボリュームへのである、すなわちcd /Volumes/<bootvolume>/usr/bin

    その後、実行しますコマンド:

    ln -s /usr/local/bin/cvs cvs

    これは、/ binに/ CVSの/ usrからのシンボリックリンクを作成します - バック>は/ usr/local/binに/ CVS

    再起動しますあなたのOSに、それはそれを修正する必要があります。

    あなたは返すべき

    ssh <user>@<cvs-server-ip> which cvs

    でこれを確認することができます:ここにあなたのリモートCVSはチェックアウトが動作するはず今

    /usr/bin/cvs

    そして...

    関連する問題