GNU/Linux >> Linux の 問題 >  >> Linux

すべてのファイルに対して strip を実行すると、どのような害がありますか?

Linux の場合はそうではありませんが (チェックしたばかりです...)、他のシステム (OSX などの BSD など) では、これを行うと setuid/setgid パーミッションが副作用として削除されます。また (まだ OSX を見ている)、ファイルの所有権が (書き込みを行っているユーザーに) 変更される可能性があります。

Linux の場合、早い段階で共有ライブラリを削除するとリンクできなくなっていたことを思い出します。これは今では問題ではありませんが、Program Library HOWTO にあるように、デバッガが役に立たなくなります。静的ライブラリへのリンクを防ぎます。

さらに読む:

  • 24.14 不用意にストリップを使用しない (Unix Power Tools)
  • Linux カーネル モジュールを壊さずにローカル シンボルを削除するにはどうすればよいですか?
  • Linux と Solaris がお互いから学べること

OpenSUSE を含むほとんどのディストリビューションは、ビルド スクリプトの一部として実行可能ファイルを取り除きます。システムの実行可能ファイルは既に削除されているため、削除する必要はありません。

削除してはならないバイナリがあります。パッケージのメンテナーは、正しいビルド オプションを使用してそれらを削除しないように注意します。これには、通常の起動時の読み込みや単純な dlopen ではなく、何らかの自己内省を行う、通常とは異なる方法でライブラリを動的に読み込むバイナリが含まれます。 .これには、バイトコードと strip のバイトコード インタープリタで構成される多くの実行可能ファイルも含まれます。 バイトコードをデバッグ データと間違えます。

補足:スペースを節約したい場合、OpenSUSE は適切なディストリビューションではありません。 OpenSUSE のパッケージの粒度は非常に粗いです。小規模なシステムの場合は、パッケージの粒度が細かいディストリビューションを使用して、必要な部分だけをインストールできるようにします。デスクトップ/サーバーの範囲では、Debian と Arch が適しています。また、WRT などの組み込みシステムをターゲットとするディストリビューションを検討することもできます。


Linux
  1. Linux ですべてまたは特定のファイルを gzip する方法

  2. Linuxで.rbで終わるすべてのファイルを見つける方法は?

  3. Linuxはプロセスによってアクセスされたすべてのファイルを追跡しますか?

  1. 実行しているLinuxバージョンは何ですか?調べる方法は次のとおりです

  2. 実行している Linux のバージョンを確認するにはどうすればよいですか?

  3. Linux で実行している PHP のバージョンを確認するには?

  1. Linux ですべてのスパース ファイルを見つける方法

  2. Linux のスパース ファイルとは

  3. Linux の Win32 API に相当するものは何ですか?