やってみる

アウトプットすべく己を導くためのブログ。その試行錯誤すらたれ流す。

ソフトウェアを公開する方法について調べてみた

ソフトウェアを公開する方法について調べてみた

このブログではソフトウェアを作ってみるつもりです。 そこで公開する方法について調べてみました。

アップロード

公開するにはどこかのサーバにアップロードする必要がありますが、はてなブログではできないようです。 そこで、方法を調べました。無料のWebサービスを利用する方針です。

  • オンラインストレージにアップロードする(DropBox等)
  • リビジョン管理にアップロードする(GitHub等)
  • パッケージ管理にアップロードする(NuGet等)

使い分け

サービス系統 用途
ストレージ ファイルの永続保存と共有
リビジョン管理 ソースコードの永続保存と共有と変更履歴の記録
パッケージ管理 ソフトウェアの永続保存と共有と依存関係の定義と解決

学習、調査、実験が目的のコードなら、ストレージ。 コードの公開による発展や情報交換が目的なら、リビジョン管理。 ソフトウェアの依存関係を自動で解決するなら、パッケージ管理。

利点と欠点

オンラインストレージ

利点

  • アップロードが簡単。zip圧縮してアップロードすればいいだけ
  • ダウンロードが簡単。URLをクリックするだけ
  • ファイル形式の制限なし(exeやdllも可能)

欠点

  • Issue, Wiki, リビジョン管理, など諸々の機能がない

リビジョン管理

利点

  • リビジョン管理ができる
  • コミュニティ機能がある
    • Issue
    • HTTP(Wiki)
    • Fork

欠点

  • 仕組みやコマンドを覚える必要がある
  • 設定など環境構築が面倒
  • exe, dll, などテキスト以外のファイルがアップロードできない
  • exe, dll, を入手するにはコンパイル必要(開発環境が必要。ビルド操作が必要)
  • ダウンロードが面倒
    • サイトからzipを選択する or
    • ローカルからgitコマンド操作する(gitツールが必要)

パッケージ管理

利点

  • ソフトウェアの入手ができる
  • コマンドラインから実行できる。自動化できる。
  • ソフトウェアの依存関係を自動で解決できる

欠点

  • 仕組み、コマンド、設定の記述を覚える必要がある
  • 依存されるような汎用性あるライブラリだけが登録するに相応しい
  • exe, dll, を入手するにはコンパイル必要(開発環境が必要。ビルド操作が必要)
  • ダウンロードが面倒。nugetコマンド操作が必要。(nugetツールが必要)

とりあえずの方針

簡単そうなオンラインストレージで公開してみようと思います。