2017-06-20 1 views
0

私は自分のプロジェクト用のスナップパッケージをビルドしています。コンパイルしたいだけのライブラリがあります。すなわちだけ/configure && make ない:私はUbuntuの中にそれのためのドキュメントのスナップを探していたとして/configure && make && make installUbuntuスナッププラグイン 'autotools'デフォルト 'make install'をスナップクラフトでビルド中にスキップする

、私が見つかりました:

https://snapcraft.io/docs/reference/plugins/autotoolsもここで検索:https://github.com/search?o=desc&q=filename%3Asnapcraft.yaml+%22plugin%3A+autotools%22+&s=indexed&type=Code&utf8=%E2%9C%93

をしかし、私はスキップする何かを見つけることができませんでしたmake install部分。誰も私にそれをする方法を提案することはできますか? make installの後ろに汚れがあるかもしれませんが、make installの生成ファイルを再帰的に削除するシェルスクリプトを1つ追加し、さらにアプリケーションコードのコンパイルに進みます。しかし、私はこれをうまくやっていくうれしい道があるはずだと思います。 snapcraftを実行してスナップパッケージを作成するときに、このmake installをスキップする方法がある場合はお知らせください。

+0

私はスナップに慣れていませんが、私は他のフォーマットで多くのパッケージを行っています。あなたは 'make install'をスキップして何を達成すると思いますか?その場合、パッケージには何が含まれると思いますか?私の最初の推測は「何もない」だろうから。 –

+0

私はちょうどそれをコンパイルしたい、私はそのコンパイルされたlibを自分のコードにリンクし、それをインストールする。私はライブラリバイナリもインストールしたくありません。それが私が達成したいことです。 libのmake installはライブラリバイナリをそのスナップにもパッケージ化された特定のフォルダにインストールします。私はそれをしたくありません。うまくいけば、私は 'fishy'の部分を説明することができます –

+1

あなたはシステムに対して働いているようです。ライブラリ(-ies)を* shared *ライブラリとして構築することは、パッケージングしているアプリケーション専用であるにもかかわらず、それらを動的にリンクすることは当然のことです。その場合、実際にはライブラリバイナリをパッケージ化する必要があります。そのモデルは一般的にはかなり一般的ですが、特にスナップショットの対象となるようです。 –

答えて

0

私は試行錯誤の方法で答えを得ました。その解決策は、

artifacts: [.] 

snapcraft.yamlファイルです。ドキュメントごとに、デフォルトのmake install skipが行われます。私はそれを無用にしていたが、動作していなかった。しかし、これはかなりうまくいっています。また、パーマネント拒否のエラーもなくなりました(スナップ・クラフトはシステムにインストールしたかったので、そこの解決策でした)。

関連する問題