2017-11-12 14 views
2

golangのosxのサーバモードで動作するcliアプリをビルドしています。私はサーバーの世界から来て、どのようにosxのための消費者向けcliツールを適切に配布するのか分かりません。 cliは、launchdで簡単に実現できるサービスとして実行できます。OSX cli/server appの配布方法

launchdの設定:

<plist version="1.0"> 
    <dict> 
     <key>KeepAlive</key> 
     <true/> 
     <key>Label</key> 
     <string>focus-daemon</string> 
     <key>RunAtLoad</key> 
     <true /> 
     <key>Program</key> 
     <string>/usr/local/bin/focus</string> 
    </dict> 
</plist> 

構築と実行も非常に簡単です:

go build main.go 
sudo cp main /usr/local/bin/focus 
rm main 
sudo chown root /usr/local/bin/focus 
sudo chmod 4555 /usr/local/bin/focus 
cp focus.plist ~/Library/LaunchAgents/com.21stio.focus.plist 
launchctl load ~/Library/LaunchAgents/com.21stio.focus.plist 

プロセスを構築しているバイナリにSBITを設定するにはsudoを必要とします。

ユーザーが.shスクリプトを実行する必要はありません。たぶん、私はそれにBREWやDMGを使うことができました。しかし、私はどのように正しい場所にLaunchd configを置くことができるのか分かりません。

+3

インストーラを作成することができます。 http://s.sudre.free.fr/Packaging.html – pvg

答えて

2

コメントに示唆されているように、インストーラパッケージは通常、この種のソフトウェアを使用する方法です。 Macにデバイスドライバ、OSアップデート、その他の低レベルソフトウェアを手動でインストールしたことがあれば、おそらくそれらに精通しているでしょう。

コマンドラインユーティリティを使用してそれらを生成することもできますが、コメントに示唆されているサードパーティ製のアプリケーションpvgを必ずしも使用する必要はありません。 This answerは良い出発点です。コマンドラインツールを使用すると、標準ビルドプロセスの一部としてパッケージビルドを自動化することもできます。

アップル独自の古い「PackageMaker」GUIツールは、新しいバージョンのmacOS/OSXでは正しく機能しなくなったので、使用しないことを強くお勧めします。

+0

すばらしき、ありがとう! :) – 21st

関連する問題