問題タブ [pkgbuild]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
1705 参照

macos - osx - pkg インストールの一部としてファイルを削除します

pkgbuild を使用して、OSX アプリケーションのインストーラーを作成します。一部のファイルを削除する追加のインストール手順を追加する方法はありますか? この特定の例では、アプリケーションを実行すると、バイナリが配置されているディレクトリに新しいファイルが作成されます。新しいバージョンをインストールすると、バイナリが置き換えられますが、以前に作成されたファイルは残ります。新しいバージョンのインストール後に「新たなスタート」が必要です。

0 投票する
1 に答える
1469 参照

macos - Mac OS X パッケージは、アプリケーションにインストールするのではなく、ホーム ディレクトリのファイルを変更します

グラフィカルなQtアプリケーションを Mac OS X のユーザーに配布する最良の方法を見つけようとしています。

pkgbuildproductbuildについて学び、それらを使用して拡張機能付きのフラット パッケージを作成しました。.pkg

しかし、このようなフラット パッケージを Mac OS X 10.11 にインストールしようとすると、非常に奇妙な動作が見られます。これらのパッケージの Mac OS X インストーラーは、インストールしようとしているアプリケーションのホーム ディレクトリを検索するようです。そこにアプリケーションが見つかった場合、実際にはそのアプリケーションを盗み、それらのファイルの所有権をルートに変更し、インストールし/Applicationsたかったフォルダーにアプリケーションをインストールできません。

予想される動作は、パッケージが常にアプリケーションを/Applicationsディレクトリにインストールし、ホーム ディレクトリ内のファイルの所有権を変更しないことです。

これは本当に奇妙に思えます。何が起こっていて、どうすれば修正できますか? フラット パッケージは良さそうに見えますが、アプリケーションが常に適切な場所にインストールされることを保証したいので、ユーザーのホーム ディレクトリ内のファイルを変更することは避けたいと考えています。

問題を再現する手順

Homebrewをホーム ディレクトリにインストールします。

実行brew install qt5して Qt5 をインストールします。

次の 3 つのファイルを含む新しいディレクトリを作成します。

Info.plist.in :

main.cpp :

test.sh :

./test.shターミナルに入力して test.sh を実行します。私のコンピューターでは、出力は次のようになります。

(明らかに、pkgbuild は私のステージング フォルダー内のコンポーネントを検出しています。私はそれが行われないことを望みます。単純に、これらすべてのファイルをユーザーの/Applicationsディレクトリにインストールすることを望んでいます。ファイルがあるという理由だけでファイルを特別に扱う場合Info.plist、それはおそらく悪いこと。)

open app.pkg次に、画面上の GUI を実行し、それに従ってパッケージをインストールします。

Mac OS X フラット パッケージの標準 UI

実行ls /Applications/abc.appすると、アプリケーションが予期した場所にインストールされていないことがわかります。

ls -l stagingorを実行find . -uid rootすると、 のファイルstaging/abc.appがすべて root ユーザーによって所有されていることがわかりますが、これは予期しないことです。

次に、ステージング ディレクトリを削除しsudo rm -rf stagingます。パッケージのインストールを再試行してください。今回は、インストーラーがホーム ディレクトリにアプリを見つけられなかったため、正常に にインストールされました/Applications

代替案

アプリには実際に GUI とコマンド ライン コンポーネントがあり、その方法でコマンド ライン コンポーネントをユーザーのパスに配置するのは難しいため、.appフォルダーをファイルにパッケージ化するだけには興味がありません。.dmgフラット パッケージを使用すると、ファイルを に追加することで、コマンド ライン コンポーネントをパスに簡単に取得できます/etc/paths.d

Mac OS X フラット パッケージをオーサリングするためのより良いツールはありますか?

のソースコードはpkgbuild入手できるので、それが何をしているのかを理解できますか?

この回答で説明されているより複雑な手順を試して、それが役立つかどうかを確認してください。

0 投票する
2 に答える
1315 参照

cmake - make all を使用した PKGBUILD

いくつかのサブアプリケーションで構成される github プロジェクト用に、現在 AUR 用の PKGBUILD を作成しようとしています。
したがって、基本的にこのプロジェクトの CMake ファイルは make を実行して make && make install サブアプリケーションを作成するだけです。
これらは私のビルドとパッケージの手順です:

私の問題は、次を除いてすべてが機能することです。

  • makepkg -i は、ビルド中に sudo 権限を要求することはありません (したがって、make all の前に sudo を追加する必要がありました)
  • インストールを要求するとき、makepkg はパッケージのサイズを認識しません。したがって、packman -R packagename を実行してもパッケージはアンインストールされません。

ただし、プロジェクトは私のものではなく、すべての異なるサブアプリケーションが一緒に属しているため、CMake ファイルを変更することはできません。make && make install を個別に実行しようとすると、相互に依存しているというエラーがたくさん表示されます。

0 投票する
2 に答える
1839 参照

macos - pkg のログの場所を変更する方法はありますか?

pkgbuildと を使用してインストーラーを作成してproductbuildいます。何か問題が発生した場合に備えて、ユーザーからインストール ログを収集できるようにしたいと考えています。それらのログが、インストールされている他のすべてのものと混ざっていなければいいのですが。

デフォルトでは、すべてのログが に移動するように見えます/var/logs/install.log。アプリのインストーラー ログのこの場所を変更する方法はありますか?

0 投票する
3 に答える
35897 参照

macos - Mac 用の .app の dmg ファイルを作成する方法

私は iOS の開発者であり、Mac アプリを開発しました。今、アプリを配布して、アプリを検索したところ、.app を Mac App Store にアップロードする必要があることがわかりました。自己配布の場合、次の 3 つのオプションがあります。

  1. 私たちのアプリを共有することです
  2. .dmgファイルを作成することです
  3. .pkg ファイルを共有することです (パッケージ メーカー)。

pkg ファイルで、クライアントが紹介なしでアプリをインストールしたいので、私と使用許諾契約を読み、ライセンスと readme を削除しましたが、紹介セクションを削除できませんでした。ここから私を助けてください…</p>

前もって感謝します

0 投票する
0 に答える
188 参照

macos - osx でフォルダー選択オプションを使用してインストーラーを作成する

Mac OS で Adob​​e photoshop へのプラグインのインストーラーを作成しています。そのため、Google で調べたところ、Mac OS のインストーラーが 2 つの形式 (dmg と pkg) で提供されていることがわかりました。dmg には、ユーザーにソフトウェア (この場合は Adob​​e photoshop) のフォルダーの場所を選択するよう求めるオプションはありません。これは、Adobe Photoshop ソフトウェアの場所にプラグイン ファイルを配置するために必要です。一方、pkg では、フォルダーの場所レベルではなく、ハード ドライブ レベルのみを要求するオプションがあります (ここで間違っている可能性があります。間違っている場合は修正してください)。

Applescriptで問題が解決するかもしれませんが、顧客が同意してインストールを続行するためのライセンス契約を含める必要があるため、Applescriptを選択しませんでした

この問題を解決し、アプローチを提案するのを手伝ってください。