問題タブ [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.
macos - osx - pkg インストールの一部としてファイルを削除します
pkgbuild を使用して、OSX アプリケーションのインストーラーを作成します。一部のファイルを削除する追加のインストール手順を追加する方法はありますか? この特定の例では、アプリケーションを実行すると、バイナリが配置されているディレクトリに新しいファイルが作成されます。新しいバージョンをインストールすると、バイナリが置き換えられますが、以前に作成されたファイルは残ります。新しいバージョンのインストール後に「新たなスタート」が必要です。
macos - Mac OS X パッケージは、アプリケーションにインストールするのではなく、ホーム ディレクトリのファイルを変更します
グラフィカルなQtアプリケーションを Mac OS X のユーザーに配布する最良の方法を見つけようとしています。
pkgbuild、productbuildについて学び、それらを使用して拡張機能付きのフラット パッケージを作成しました。.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 を実行し、それに従ってパッケージをインストールします。
実行ls /Applications/abc.app
すると、アプリケーションが予期した場所にインストールされていないことがわかります。
ls -l staging
orを実行find . -uid root
すると、 のファイルstaging/abc.app
がすべて root ユーザーによって所有されていることがわかりますが、これは予期しないことです。
次に、ステージング ディレクトリを削除しsudo rm -rf staging
ます。パッケージのインストールを再試行してください。今回は、インストーラーがホーム ディレクトリにアプリを見つけられなかったため、正常に にインストールされました/Applications
。
代替案
アプリには実際に GUI とコマンド ライン コンポーネントがあり、その方法でコマンド ライン コンポーネントをユーザーのパスに配置するのは難しいため、.app
フォルダーをファイルにパッケージ化するだけには興味がありません。.dmg
フラット パッケージを使用すると、ファイルを に追加することで、コマンド ライン コンポーネントをパスに簡単に取得できます/etc/paths.d
。
Mac OS X フラット パッケージをオーサリングするためのより良いツールはありますか?
のソースコードはpkgbuild
入手できるので、それが何をしているのかを理解できますか?
この回答で説明されているより複雑な手順を試して、それが役立つかどうかを確認してください。
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 を個別に実行しようとすると、相互に依存しているというエラーがたくさん表示されます。
macos - pkg のログの場所を変更する方法はありますか?
pkgbuild
と を使用してインストーラーを作成してproductbuild
います。何か問題が発生した場合に備えて、ユーザーからインストール ログを収集できるようにしたいと考えています。それらのログが、インストールされている他のすべてのものと混ざっていなければいいのですが。
デフォルトでは、すべてのログが に移動するように見えます/var/logs/install.log
。アプリのインストーラー ログのこの場所を変更する方法はありますか?
macos - Mac 用の .app の dmg ファイルを作成する方法
私は iOS の開発者であり、Mac アプリを開発しました。今、アプリを配布して、アプリを検索したところ、.app を Mac App Store にアップロードする必要があることがわかりました。自己配布の場合、次の 3 つのオプションがあります。
- 私たちのアプリを共有することです
- .dmgファイルを作成することです
- .pkg ファイルを共有することです (パッケージ メーカー)。
pkg ファイルで、クライアントが紹介なしでアプリをインストールしたいので、私と使用許諾契約を読み、ライセンスと readme を削除しましたが、紹介セクションを削除できませんでした。ここから私を助けてください…</p>
前もって感謝します
macos - osx でフォルダー選択オプションを使用してインストーラーを作成する
Mac OS で Adobe photoshop へのプラグインのインストーラーを作成しています。そのため、Google で調べたところ、Mac OS のインストーラーが 2 つの形式 (dmg と pkg) で提供されていることがわかりました。dmg には、ユーザーにソフトウェア (この場合は Adobe photoshop) のフォルダーの場所を選択するよう求めるオプションはありません。これは、Adobe Photoshop ソフトウェアの場所にプラグイン ファイルを配置するために必要です。一方、pkg では、フォルダーの場所レベルではなく、ハード ドライブ レベルのみを要求するオプションがあります (ここで間違っている可能性があります。間違っている場合は修正してください)。
Applescriptで問題が解決するかもしれませんが、顧客が同意してインストールを続行するためのライセンス契約を含める必要があるため、Applescriptを選択しませんでした
この問題を解決し、アプローチを提案するのを手伝ってください。