私は SUSE Enterprise Linux システムに非ルート アクセス権を持っています。FUSE を使用する必要がありますが、FUSE ライブラリがインストールされていません (ただし、fuse 自体はインストールされています)。そのため、fuse をホーム ディレクトリにインストールしようとしています。
configure コマンドでプレフィックス dir を指定しましたが、make install
次の理由で失敗します。
libtool: install: /usr/bin/install -c fusermount /home/gabriel/opt/fuse-2.8.7/installation/bin/fusermount
libtool: install: /usr/bin/install -c ulockmgr_server /home/gabriel/opt/fuse-2.8.7/installation/bin/ulockmgr_server
/bin/mkdir -p /sbin
/usr/bin/install -c ./mount.fuse /sbin/mount.fuse
/usr/bin/install: cannot remove '/sbin/mount.fuse': Permission denied
make[2]: *** [install-exec-local] Error 1
ご覧のとおり、何らかの理由でmount.fuseを/sbinにインストールしようとしています。Makefileの変数MOUNT_FUSE_PATHのパスを手動で変更してみましたが(/sbinに設定されていました)、エラーは解決しません。これはFUSEのせいでしょうか?もっているルートとしてインストールしますか?
私はこれを Fuse バージョン 2.7.2、2.8.7 で試しました。
答え1
FUSE はカーネルとユーザーモード ファイル システム間の橋渡しです。カーネルにとって、各 FUSE インスタンスは通常のファイル システムです。ユーザーモード ファイル システムの場合、コールバック付きのユーザー レベルの C スタイル インターフェイスにすぎません。当然、カーネルによってファイル システムとして認識されるためには、カーネル モジュールをロードする必要があります。そのため、ユーザーとしてインストールできたとしても、ルート権限がなければ、まだ行き詰まってしまいます。申し訳ありません。
答え2
必要な権限があるかどうかを確認し、fuse ctl ディレクトリの所有者に問い合わせてください。
ls -ld /sys/fs/fuse/connections