1. ホーム
  2. linux

[解決済み] HOMEと'~'の違いについて (チルダ)の違い?

2023-06-27 08:29:56

質問

私は常々、次のように考えていました。 $HOME~ は全く同じものであり、従って は全く同じものであり、互換性を持って使用することができます。今日、私がインストールしようとしたとき pylibmc をインストールしようとしたとき、memcached へのバインディングである python をインストールしようとしたところ、共有サーバで ~ を使うとエラーが出ますが $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

を問題なく実行できました。チルダが解決されないのが問題のようです。でも、なぜ?

どのように解決するのですか?

シェルは ~ をユーザのホームディレクトリ ( 更新 : または、おそらく他のユーザのホームディレクトリで ~ の後に / のように)、ただし、単語の最初の文字である場合のみ。

--with-libmemcached=~~ を持たないので、シェルはそれをそのままにします。