私たちはなぜ指示すべきですかfakeroot
?単にsudo
orコマンドを使用することはできませんかsu
?
マニュアルページには次のように記載されています。
fakeroot - 偽のroot権限を持つ環境でコマンドを実行します。ファイル操作
About.comはこう言いました。
偽のルート環境を提供します。このパッケージは、次の機能を達成するように設計されています。
dpkg-buildpackage -rfakeroot
つまり、パッケージを構築するためにrootユーザーになる必要はありません。これは、、、、、...の周りにラッパーを提供するようLD_PRELOAD
に設定することによって行われ、これにより偽のルート環境が作成されます。これを理解していないなら、それは必要ありません!libfakeroot.so
getuid
chown
chmod
mknod
stat
fakeroot
私の質問は、解決されていない単純su
なまたは特別な目的を解決することです。sudo
たとえば、Ubuntuにインストールされているすべてのパッケージを再パッケージするには、次のコマンドを使用します。
$ fakeroot -u dpkg-repack `dpkg --get-selections | grep install | cut -f1`
fakerootの代わりにsudoまたはsuを使用して、次のように上記のコマンドを実行できます。
$ sudo dpkg-repack `dpkg --get-selections | grep install | cut -f1`
編集する:
ランニング:
$ sudo dpkg-repack `dpkg --get-selections | grep install | cut -f1`
私には、次のエラーが発生します。
制御ディレクトリの権限エラー700(> = 0755および<= 0775でなければなりません)
理由がありますか?
ベストアンサー1
あなたがリモートサーバーで働く開発者/パッケージマネージャー/等であることを想像しなさい。パッケージの内容を更新して再構築し、kernel.orgからカーネルをダウンロードしてカスタマイズしてビルドするなどの作業が必要です。これらのタスクを実行しようとすると、一部の手順では、さまざまな理由(セキュリティ、見落とされた権限など)がroot
権限(UID
およびゼロ)を必要とすることがわかります。しかし、リモートコンピュータで作業しているため、権限をGID
取得することは不可能です(他の多くのユーザーもあなたと同じ問題を抱えています)。これがまさにそのことです。root
必要な環境ではfakeroot
有効なふりをしてゼロのふりをします。UID
GID
実際には実際の権限を取得できません(root
あなたが言及したのとは対照的に)。su
sudo