![Ubuntu snap プラグイン 'autotools' のデフォルトの 'make install' は snapcraft でビルド中にスキップされます](https://rvso.com/image/1000926/Ubuntu%20snap%20%E3%83%97%E3%83%A9%E3%82%B0%E3%82%A4%E3%83%B3%20'autotools'%20%E3%81%AE%E3%83%87%E3%83%95%E3%82%A9%E3%83%AB%E3%83%88%E3%81%AE%20'make%20install'%20%E3%81%AF%20snapcraft%20%E3%81%A7%E3%83%93%E3%83%AB%E3%83%89%E4%B8%AD%E3%81%AB%E3%82%B9%E3%82%AD%E3%83%83%E3%83%97%E3%81%95%E3%82%8C%E3%81%BE%E3%81%99.png)
私はプロジェクト用のスナップ パッケージを作成しています。コンパイルのみを行いたいライブラリがあります。つまり、/configure && make のみで、/configure && make && make install は行いません。
Ubuntu snap でドキュメントを検索したところ、次のものを見つけました:https://snapcraft.io/docs/reference/plugins/autotools
しかし、make install 部分をスキップする方法は見つかりませんでした。誰かその方法を提案してくれませんか? 汚いやり方としては、make install の後にシェル スクリプトを 1 つ追加して、make install で生成されたファイルを再帰的に削除し、アプリケーション コードのコンパイルに進むという方法があります。しかし、これをうまく行うためのハッピー パスがあるはずです。したがって、snapcraft を実行して snap パッケージをビルドするときに、この make install をスキップする方法があれば教えてください。
答え1
インストール段階で行われる処理をinstall:
、空白のままにしておくことで上書きすることができます。つまり、空白行をエコーするだけで、スキップしていることを示すことができます。あるいは、Makefileにいいえインストールスタンザを使用すると、必要な操作をすべてインストールスタンザで実行できます。例:
parts:
foo:
source: .
plugin: autotools
install: |
cp -a somebinary $SNAPCRAFT_PART_INSTALL/bin
cp -a somesupportfiles $SNAPCRAFT_PART_INSTALL/foo
これは、シェルcp
コマンドを使用してインストールを実行します。