やってみたらいいじゃんの落とし穴

慣れないことをする時に、慎重になり過ぎてなかなか進捗しないということがある。慣れている人からしたら、それをするとどうなるか予見できるので、ぐずぐずしてる人を見るとイライラしてしまうもの。ただ、本人からすれば、これを実行して大丈夫なのか心配でしょうがなかったりする。サーバーの遠隔操作もしかりで、rm -rf directory とか、打ってしまうともう後戻りできない部類のものがある。

最近、さくらレンタルサーバでSSHでログインして、色んなプログラム導入しようと色々弄っていた。VPSではない共用サーバーなので、パーミションなど制約が多いなかで実現させようとするとかなりハードルが高くなる。そんな中、ホスト側で用意してくれている Git コマンドでは、サブモジュールがインストールできないということで、最新版の Git 2.19.0 を自分専用で使えるように試みた。Git をコンパイルしたのは良いが、SSL のライブラリの紐付けがうまく行かなかったようで、https で始まるリポジトリにアクセスするとエラーが出るようになった。そこで、cURL をコンパイルして、Git に紐付けしながら Git をコンパイルさせようとしていたのだが、問題が生じた。

cURL は 7.62.0。これをコンパイルすることはできたが、いざ実行すると、エラーも吐かず、動作しない。7.61.1 だとコンパイル時にエラー。7.46.0 に落とすとコンパイルできた。しかし、実行すると、Certificate が無いというエラーが出る。一旦やり直そうと、git, curl のファイルを ~/local/bin から削除。再ログイン。これで、サーバー側のデフォルトのコマンドが使用されるはず。しかし、git のコマンドを打つと、ssl 関連のエラーが出るようになった。

これはさくらサーバが用意した初期状態の git コマンドでは起こらない。

何もカスタマイズしていない他の契約アカウントでログインし、同じように git clone をしてみても正常に動く。つまり、何か良からぬ変更を加えてしまったということだ。

当面の対処として、

.cshrc に加えることでエラーは回避できるが、根本的な解決にはならない。cURL 関連の変更で、PHP の方に影響を与えていなければ良いのだが・・・(参考:  Skip GIT SSL Verification)

とにかく、取り返しのつかない作業というものがあり、「ま、やってみてだめだったらやり直せばいい」という考えが通用しないことがある。特に、PC周りはそういう落とし穴が結構ある。PC初心者が、「これ、わかんな~い」と投げ出してしまうのをよく見るが、それは、未知の危険に対する自己防衛であり、生物として真っ当な反応である。

Leave a Reply

Your email address will not be published. Required fields are marked *