web-dev-qa-db-ja.com

隔離された環境でスナップを構築するにはどうすればよいですか?

Debianパッケージのビルド中、 pbuilder (および同様のツール)は、隔離された環境でパッケージをビルドするのに役立ちます。そのため、システムの奇妙な設定がビルドの問題を引き起こしません。

pbuilderは、クリーンルーム環境内でDebianパッケージを自動ビルドするためのセットアップが簡単なシステムを目指しているため、ほとんどのDebianインストールでパッケージをビルドできることを確認できます。クリーンルーム環境は、ベースのchrootイメージを使用して実現されるため、chroot内には最小限のパッケージのみがインストールされます。

Snapcraftに相当するものはありますか?


コンテキスト:ビルドに干渉するロケールの問題がいくつかありました Cassandraのスナップ 。調べるのが面倒だというロケールエラーが発生していましたが、ビルドプロセス中に、一部のファイルのUnicode文字が原因でjavadocが失敗しました。 C.UTF-8をロケールとして使用すると、次の問題が修正されました。

export LC_ALL=C.UTF-8
snapcraft

ただし、私のロケールは、パッケージの構築、snappy、またはDebianに影響を与えるべきではありません。ここではpbuilderのようなものが役立ちます。

5
muru

確かにできます。 snapcraftには「cleanbuild」オプションがあり、lxdコンテナ内でローカルに(デフォルト)ビルドするか、リモートで(--remoteオプションを介して)ビルドできます。

そう:-

ローカルlxdをビルドします(lxdパッケージをインストールする必要があり、 LXDのネットワーク設定 ):

snapcraft cleanbuild

リモートlxdをビルドします。

snapcraft cleanbuild --remote remotemachine

このガイド に従って、ホームサーバーにリモートビルをセットアップしました。うまくいく!

7
popey