Web開発
TiddlyInstall: ユニバーサルで再利用可能なインストールシステム
TiddlyInstall: A universal, reusable, install system (robertsdotpm.github.io)
要約
TiddlyInstallは、GitHubリポジトリから直接、Windows、Linux、macOS向けのインストーラーを生成できるシステムです。単一のHTMLファイルで構成され、依存関係の管理やクロスプラットフォーム対応を容易にします。開発者は、署名済みインストーラーの生成や、コードをブラウザ上で直接記述してインストーラーを作成する機能も提供しています。
全文翻訳
01 それは何であるかWindows、Linux、macOS向けの実際のインストーラーが、GitHubリポジトリから直接利用できます。フリーズや壊れるバンドラーはありません。プロジェクトの実際のランタイムと依存関係を独自のフォルダにインストールし、それらに対してプロジェクトをインストールします。WindowsインストーラーはNSISでビルドされ、LinuxとmacOSではインストーラーはフレームワークなしの単一のPOSIXシェルスクリプトです。インストーラーを作成するアプリを作成するOutput.exe · .run · .zip言語13、さらに独自のランタイム古いターゲットWindows XP · glibc 2.17 Linux · macOS 10.9このページ単一のHTMLファイル、サーバーなし、ネットワークなし02 変わった部分TiddlyWikiのような単一のファイルTiddlyInstallは単一のHTMLファイルです。このページには、インストーラープログラム、ランタイムカタログ、およびそれらを作成、編集、署名するすべてのコードが含まれています。サーバーは一切ありません。ここで書いたコード、パッケージ、またはコミットにピン留めされたGitHubリポジトリ。署名されていないインストーラーを編集し、インターネット接続のないマシン用にランタイムを内部にパックし、独自のキーで署名します。ディスクに保存されたコピーは、ランタイムミラーを除いてネットワークに何も要求しないため、GitHubブランチはコミットとして指定する必要があります。サーバーが追加するもの2つのこと。インストールスクリプトに署名するため、インストーラーはスクリプトが私たちから届いたものであり、改変されていないことを確認できます。そして、証明書があれば署名されるインストーラーがビルドされる場所になりますが、まだないので、そのオプションはオフになっています。上記以外のすべてはこのページの独自の作業です。このページを約6MB保存すると、それが製品全体になります03 仕組み驚きなしの3つのステップステップ1リポジトリを指定するGitHubリポジトリとブランチ、タグ、またはコミットを指定します。実際のソースコードをクローンします。ステップ2依存関係は処理されますインストール時に、バージョン範囲に一致し、そのコンピューターで実行される最新のランタイムを選択し、アプリ独自のフォルダにインストールします。ステップ3すべてのプラットフォーム向けにビルドするWindows用の通常の.exe(NSISでビルド)、Linux用の.run、macOS用の.zipの3つの実際のインストーラーです。04 隔離各アプリには独自のフォルダがあります各アプリには、短いハッシュ化された名前のフォルダ内に、各依存関係の独自のコピーがあります。何も共有されないため、あるアプリが別のアプリを壊すことはなく、アンインストールするとアプリのフォルダが削除されるだけです。ディスク容量は安価ですが、壊れたインストールはそうではありません。Windows C:\ti\k3m9q2x7v4p8\ アプリ C:\ti\tjfq5rqwnnrx\ Python 3.12.4 C:\ti\a7d2hx9q4mbe\ git 2.46.0 Linux /opt/ti/tjfq5rqwnnrx/ macOS /Library/Application Support/ti/tjfq5rqwnnrx/05 まだリポジトリがないアプリをここで書くPython、JavaScript(Node.js)、またはRubyとテンプレート(スクリプト、ウィンドウアプリ、ウィンドウ内のWebページ、またはトレイアプリ)を選択し、ブラウザでコードを記述し、実行し、同じパイプラインでインストーラーを作成します。新しいインストーラーページで。アプリを作成する06 再利用アプリを指す単一のインストーラープログラム私たちは1つのインストーラープログラム(ベースインストーラー)を作成しました。ここでビルドされるすべてのインストーラーは、その同じプログラムに設定が追加されたものです。たとえば、install_python_x.exeは、Pythonパッケージxをインストールするという設定を持つそのプログラムです。コードはすべてのコピーで同一であり、設定のみが変更されるため、プログラム自体はアプリごとに1回ではなく、1回だけテスト、強化、署名する必要があります。install_python_requests.exe -> 「requests」パッケージをインストールしますinstall_python_black.exe -> 「black」パッケージをインストールしますinstall_node_prettier.exe -> 「prettier」パッケージをインストールします07 署名出荷の3つの方法ここでの署名はインストーラープログラム(私たちが書いた、すべてのコピーで同一のプログラム)にあり、インストールされるソフトウェアにはありません。Webブラウザの署名と同じように機能します。誰がブラウザを書いたか、このコピーが改変されていないことを示し、あなたが訪問するサイトについては何も示しません。インストール時に信頼を求めるプログラムは私たちのものですが、改変されていないため、表示される画面は信頼できます。モードAインストーラーに署名しますセキュリティ警告が最も少ないです。設定はファイル名に格納されるため、ファイルをリネームすると別のパッケージを指すようになります。署名は有効なままです。なぜなら、インストールされるものに関する主張ではなかったからです。モードBインストーラーに署名しますインストーラー自体にあなたの名前とアイコン、独自の証明書と評判を付けます。モードC誰も署名しない完全に編集可能。ブラウザでインストールするものを変更し、名前とアイコンを変更できます。ファイルをアップロードせずに。08 約束隠されたものはありません誰が署名したかに関わらず、すべてのインストーラーは、インストールするもの、出所、ダウンロードするもの、ファイルが行く場所、インストーラーファイルに署名した人物を、何も変更する前に表示します。その画面(このページの上部にある画面)は、後で書いた要約ではありません。インストーラー自身の設定ブロックから読み取られ、インストーラーがそれに従うのと同じブロックであるため、次に何が起こるかと矛盾することはありません。その画面が証明できることとできないことは、それ自身のページに値するものです。私たちによって署名された部分、発行者の言葉である部分、そしてインターネット接続のないマシンでインストーラーがそれらをどのようにチェックするかです。あなたが信頼しているもの、そしてその理由新しいインストーラーこのインストーラーは何をインストールしますか?5つの回答で十分です。「カスタマイズ」の下のすべてには、適切なデフォルトがあり、開かなくても状態が表示されます。01 エッセンシャルあなただけが知っているものインストーラーとインストール済みアプリのランチャーに使用します。プロジェクト名を使用するには、名前を空白のままにします。カスタマイズの下でアイコンを選択します。名前コードはどこにありますか?GitHubリポジトリまたはパッケージここに書きます私のコンピューターからあなたのプロジェクトアーカイブを選択フォルダを選択.zip、.tar.gz、または.tar、またはフォルダ。ブラウザから離れることはありません。ページはインストーラー自体をビルドし、プロジェクトを内部にパックするため、あなたによって署名されるか、署名されません。何をパッケージ化しますか?GitHubリポジトリURL、またはパッケージ名。まだプロジェクトがありませんか?ここに書くを選択します。言語Python 3 Python 2 Node.js Ruby PHP Java .NET(C#、F#、VB)R C / C++ Go Rust Zig Nimその他(独自のランタイムを使用)この言語に必須あなたのランタイムダウンロードこの言語の組み込みランタイムはありませんので、インストーラーにどこから取得するかを伝えてください。ビルドしている各プラットフォームを入力します。Windows Linux macOSダウンロードURL必須1行あたり1つ。1つがダウンロードされ、SHA-256に一致するまで順に試行されます。SHA-256必須ファイルが一致しない場合、ファイルは拒否されます。バージョンファイルはインストーラーを実行するアーカイブを解凍する(.zip)ランタイムを内部に含む(必須)インストールフォルダ内のパス。{runtime}に使用されます。インストーラー引数{runtime_dir}はこのアプリのランタイムフォルダです。サイレントで実行し、PATHにランタイムを追加しないでください。ダウンロードURL必須1行あたり1つ。1つがダウンロードされ、SHA-256に一致するまで順に試行されます。SHA-256必須ファイルが一致しない場合、ファイルは拒否されます。バージョンファイルはインストーラーを実行するアーカイブを解凍する(.tar.gz、.tar.xz、.zip)ランタイムを内部に含む(必須)インストールフォルダ内のパス。{runtime}に使用されます。インストーラー引数{runtime_dir}はこのアプリのランタイムフォルダです。サイレントで実行し、PATHにランタイムを追加しないでください。ダウンロードURL必須1行あたり1つ。1つがダウンロードされ、SHA-256に一致するまで順に試行されます。SHA-256必須ファイルが一致しない場合、ファイルは拒否されます。バージョンファイルはインストーラーを実行するアーカイブを解凍する(.tar.gz、.zip)ランタイムを内部に含む(必須)インストールフォルダ内のパス。{runtime}に使用されます。インストーラー引数{runtime_dir}はこのアプリのランタイムフォルダです。サイレントで実行し、PATHにランタイムを追加しないでください。ユーザーのコンピューターでビルドビルドツールインストーラーは、アプリ独自のフォルダにコンパイラーをインストールし、ユーザーのコンピューターでプロジェクトをビルドします。Windowsデフォルト自動MinGW-w64 GCC、またはプロジェクトがVisual Studio(.sln/.vcxprojファイルがあり、他のビルドファイルがない)でのみビルドする場合はVisual Studio Build Tools。MinGW-w64 GCC(WinLibs、UCRT) · Windows 7 SP1+ · 約110MBダウンロードアプリ独自のフォルダ内のWindows用GCC。システム全体に何もインストールされません。MinGW-w64 GCC古いWindows用(WinLibs、MSVCRT) ·