0

アプリケーション用のポートファイルを開発中ですが、destrootフェーズで問題が発生しています。MacPortsガイドによると、destrootフェーズは次のコマンドを実行します。

make install DESTDIR=${destroot}

これがMakefileでどのように機能するのか誤解しているかもしれません。私のアプリケーションは非常にシンプルで、インストールルールはいくつかのディレクトリをコピーするだけでよいDESTDIRので、次のように指定されています。

install:
    cp -R bin $(DESTDIR)/bin
    cp -R lib $(DESTDIR)/lib
    cp -R cfg $(DESTDIR)/cfg

ただし、アプリケーションのMacPortインストールを実行しようとすると、次の警告が表示されます。

--->  Staging test into destroot
Warning: violation by /bin
Warning: violation by /lib
Warning: violation by /cfg
Warning: test violates the layout of the ports-filesystems!

これを修正するにはどうすればよいですか?インストールルールで変数がどのように使用されているかを誤解していますか、DESTDIRそれとも何かが完全に欠落していますか?

4

1 に答える 1

1

ディレクトリは、DESTDIRの下に配置する必要があります/.。たとえば、を使用する代わりに、-whereisなどを使用$(DESTDIR)/binする必要が$(DESTDIR)/$(PREFIX)/binあり$(PREFIX)ます/opt/local

于 2012-08-04T12:21:14.343 に答える