$HOME
と~
はまったく同じで、同じ意味で使用できるとずっと思っていました。今日、memcached への python バインディングであるpylibmc~
を共有サーバーにインストールしようとすると、 を使用するとエラーが発生しましたが、
$HOME
. 理由を述べたいと思います。
libmemcachedはpylibmcの要件です。サーバーにルートがないため、ホームディレクトリにlibmemcached をインストールしました。その結果、pylibmcをインストールするには、インストール スクリプトがlibmemcachedの場所を認識していることを確認する必要があります。
を実行するpython setup.py install --with-libmemcached=~
と、インストール スクリプトが実行されます。
gcc -pthread -fno-strict-aliasing -g -O2 -DNDEBUG -g -fwrapv -O3 -Wall \ -Wstrict-prototypes -fPIC -DUSE_ZLIB -I~/include \ -I/usr/local/include/python2.7 -c _pylibmcmodule.c \ -o build/temp.linux-i686-2.7/_pylibmcmodule.o -fno-strict-aliasing
これにより、libmemcachedが見つからないというエラーが発生します。
に変更する--with-libmemcached=$HOME
と、スクリプトが実行されます
gcc -pthread -fno-strict-aliasing -g -O2 -DNDEBUG -g -fwrapv -O3 -Wall \ -Wstrict-prototypes -fPIC -DUSE_ZLIB -I/home/waterbotte/include \ -I/usr/local/include/python2.7 -c _pylibmcmodule.c \ -o build/temp.linux-i686-2.7/_pylibmcmodule.o -fno-strict-aliasing
問題なく。チルダが解決されないことが問題のようです。しかし、なぜ?