今さらだけどスタンダードプランで入れたのでメモ。当然だけどroot権限がないためapacheにmod_svnをloadしてhttpで、、、ってのは出来ないので、svn+ssh経由で。
subversionのinstall
適当にlocalなprefixを指定するだけ。
$ cd $HOME/src/ $ wget http://subversion.tigris.org/downloads/subversion-1.6.6.tar.gz $ tar xzvf subversion-1.6.6.tar.gz $ wget http://subversion.tigris.org/downloads/subversion-deps-1.6.6.tar.gz $ tar xzvf subversion-deps-1.6.6.tar.gz $ cd subversion-1.6.6 $ ./configure --prefix=$HOME/local $ make && make install
svn+sshでcommand not foundと言われた
$ svn co svn+ssh://example.com/path/to/repos/ user@example.com's password: bash: svnserve: command not found svn: Connection closed unexpectedly
svnserverが$HOME/local/bin/に入ってるのでsshdがpath見つけられていない様子。
pathを確認してみる
こんな感じで適当に。
$ ssh exmaple.com 'echo $PATH'
command not foundの解決策
解決策1: sshdで環境変数を変更してPATHを通す。
ただし、sshd_configで環境変数変更を許可できるように
PermitUserEnvironment yes
なっていないとダメ。デフォルトはno。yesに設定されている場合は、$HOEM/.ssh/environmentに
PATH=$PATH:$HOME/local/bin
解決策2: pathが通っているディレクトリにsymlinkを作成する
echo $PATHで確認したディレクトリに書き込み権限があるなら、そこに対してsymlink張るのがてっとり早いかな。さくらインターネットの場合、PATHに$HOME/binがデフォルトで含まれているので、
$ ln -s $HOME/local/bin/* $HOME/bin
とすれば解決。
解決策3: .bashrc, .bash_profileを編集してPATHを追加する
。。。で出来ると思ってたけど(実際に自分が作ったlinuxサーバでは出来たけど)さくらインターネットで借りてる環境では出来なかった。sshでログインすれば、.bashrcに追加したPATHの内容はもちろん反映されているが、直接コマンドを実行するときには、そのpathは追加されてなかった。
まー使えれば何でもいいので、今回は解決策2でいくことに。