1

少し問題があります。strace ユーティリティを使用して、古い Linux システムでコマンドがクラッシュする理由を突き止める必要があります。残念ながら、そのシステムには strace も gcc/binutils もありません。

現在の Debian システムでアプリを静的にビルドしようとしましたが、getpwnam を呼び出すには、コンパイル時に使用された libc のバージョンを動的にロードする必要があります。それは問題ありませんが、古いシステムのユーティリティはすべて古いバージョンの libc を使用して構築されているため、そのシステムに新しい libc を配置すると、他のすべてが壊れます。

Linux の古いディストリビューションをダウンロードしてインストールしてからビルドする以外に、この問題を回避する簡単な方法はありますか? このシステムの元の分布は現在不明であり、調査すればするほど、ニワトリと卵の巨大な問題のように思えてきます。どんなヒントでも大歓迎です。

4

1 に答える 1

0

時代遅れの Linux システムを使用することは賢明ではありません...アップグレードできますか? そうでない場合、なぜですか?何が失敗していて、どのように失敗していますか? それを更新する可能性はありますか?

/etc/release などの名前のファイルがあり、ディストリビューションとバージョンがわかります。またはuname -a、分布の手がかりを与えるかもしれません。うまくいかない場合は、rpm、apt-get、またはその他のパッケージ管理コマンドのいずれかが利用可能かどうかを確認してください。これにより、ディストリビューションが絞り込まれます。インストールされているパッケージの一部とバージョンを Google 検索すると、ディストリビューションのバージョンを絞り込むのに役立つ場合があります。

ディストリビューションとバージョンを知っていれば、strace (およびおそらく他の必要なパッケージ) を入手できる場合があります。多くのディストリビューションは、アーカイブ バージョン (少なくとも古いバージョンの元のインストール メディア) を保持しています。

于 2013-03-28T02:36:29.550 に答える