2

私はPerlを知らないので、しばらくお待ちください!これは、エラーを生成するスクリプトからのビットです。

    if (-x '/usr/bin/gcc') {
        $gcc = Fink::Services::enforce_gcc(<<GCC_MSG);
Under CURRENT_SYSTEM, Fink must be bootstrapped or updated with gcc
EXPECTED_GCC, however, you currently have gcc INSTALLED_GCC selected.
This typically is due to alteration of symlinks which were
installed by Xcode. To correct this problem, you will need
to restore the compiler symlinks to the configuration that
Apple provides.
GCC_MSG
        $gcc = "-gcc" . $gcc;
    }

このスクリプトは、Mac に fink パッケージ マネージャーをインストールします。(私は Mac ユーザーではありません。元は GNU プログラムであり、ソースからコンパイルする必要があるプログラムを友人がインストールするのを手伝おうとしています)。

インストール スクリプトは、GCC のバージョンが予期したものではないというエラーを出します。これが失敗する場所だと思いますが、それが何をしているのかよくわかりません。

インストールされた GCC へのシンボリック リンクを作成しようとしましたが、これはバージョン 4.2.1 ですが、fink はバージョン 4.2 を望んでいます。

このメッセージは、GCC へのシンボリック リンクを /usr/bin に配置すると表示されます。そうしないと、GCC のバージョンが正しく識別され、インストールが拒否されます。

スイッチは Bash に似ており、ファイルが実行可能であることを確認していることを意味すると思い-xましたが、Perl で正確に何をするのか、実行可能ファイルへのリンクを実行可能ファイルとして扱うのかわかりませんか?

ありがとう!

4

3 に答える 3

4

ファイルに実行可能ビットが設定されていることをテストします。あなたの場合:ブロックが実行されなく chmod -x /usr/bin/gccなります。あなたのブロックを実行させます。ifchmod +x /usr/bin/gccif

于 2012-08-31T19:51:01.623 に答える
1

Perl のファイル テスト オペレータ (次のコマンドを使用してドキュメントを表示できます: perldoc -f -x) は通常、シンボリック リンクをたどりますが、例外は-llstat()です。ターゲットではなくリンクを特にテストしたい場合は、最初にそれらのいずれかを実行してからテストでき-x _ます。_引数として、最後の統計結果を再利用します。

于 2012-08-31T21:17:35.360 に答える
0
-X  File is executable by real uid/gid
于 2012-08-31T20:01:51.683 に答える