Linuxにはどのような `fakeroot`コマンドが必要ですか?

Linuxにはどのような `fakeroot`コマンドが必要ですか?

私たちはなぜ指示すべきですかfakeroot?単にsudoorコマンドを使用することはできませんかsu

マニュアルページには次のように記載されています。

fakeroot - 偽のroot権限を持つ環境でコマンドを実行します。ファイル操作

About.comはこう言いました。

偽のルート環境を提供します。このパッケージは、次の機能を達成するように設計されています。dpkg-buildpackage -rfakerootつまり、パッケージを構築するためにrootユーザーになる必要はありません。これは、、、、、...の周りにラッパーを提供するようLD_PRELOADに設定することによって行われ、これにより偽のルート環境が作成されます。これを理解していないなら、それは必要ありません!libfakeroot.sogetuidchownchmodmknodstatfakeroot

私の質問は、解決されていない単純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有効なふりをしてゼロのふりをします。UIDGID

実際には実際の権限を取得できません(rootあなたが言及したのとは対照的に)。susudo

おすすめ記事