>_ DevTrendsja

言語

ホーム

言語

セクション

フロントエンド バックエンド モバイル DevOps AI / ML ゲーム開発 ブロックチェーン 組み込み セキュリティ
TypeScript

TuxMateで新鮮なLinuxディストリビューションに数クリックで動作するソフトウェアを設定する方法

Linuxディストリビューションを新規インストールしたり、ワークステーションをゼロからセットアップするたびに、同じような骨の折れる作業が始まります。まず、特定のリポジトリ正確なパッケージ名を思い出す必要があります。Archでは一つの名前かもしれないものが、Debianでは接尾辞 -bin-common で2つの部分に分かれていて、Fedoraでは別の名前で呼ばれ、AURでは3つ目のビルドがあります。その結果、最初の2時間は apt searchpacman -Ss を試したり、正しいFlatpak識別子を検索したりすることに費やさなければならなくなります。

Windowsの世界では、長年にわたりNiniteがソフトウェアを一括インストールするために使われてきました——必要なプログラムを選択して、1つの готовый インストーラーをダウンロードできます。Linuxはパッケージマネージャーの多様性により、より複雑です。TuxMateプロジェクトは、これを優雅かつ裏技なしで解決することを目指しています。

TuxMate

TuxMateとは

TuxMateは、Linux、macOS、NixOS向けのインストールコマンドとシェルスクリプトを生成するWebベースのツールです。プロジェクト著者は明確な目標を設定しました:開発者向けのソフトウェアカタログを提供し Familiarなツールを選択すると、システム用の готовый で完全に透明なスクリプトをすぐに受け取れます。

TuxMateと怪しいWebインストーラーの主な違いは、アーキテクチャの原則にあります。このサービスはバックグラウンドで何もインストールしません。 исключительно 設定ツールとして動作します。ユーティリティを選択し、ブラウザ内で生成されたbashスクリプトを確認し、フラグをチェックしてから、ターミナルでコマンドを実行します。

TuxMate Interface

サポートされているエコシステム

プロジェクトカタログは開発、システムユーティリティ、ブラウザ、メディア、セキュリティ、通信ツールなどのカテゴリに分かれています。このレビュー時点で、データベースには180以上のアプリケーションが含まれています。

ジェネレーターは次のパッケージマネージャーに対してパッケージをマッピングできます:

  • DebianとUbuntu(apt
  • Arch Linux(pacman、AURヘルパーのサポート付き yayparu
  • Fedora(dnf
  • openSUSE(zypper
  • NixOS( готовый スニペットを生成 configuration.nix
  • 汎用コンテナ化された形式であるFlatpakとSnap
  • Homebrew(CLIフォーミュラとGUIキャスクが分離)

ネイティブディストリビューションパッケージに優先順位が与えられます。特定のOSの公式リポジトリにプログラムがない場合、ジェネレーターは検証済みのFlatpak、Snap、またはユーティリティの作者による公式インストールスクリプトを適切に取得します。

Selecting a distribution and software

プロジェクトの内部的な面白さ

技術的な観点から、TuxMateは新鮮なスタックで書かれています:Next.js 16(App Router)、React 19、TypeScript。スタイリングにはTailwind CSS 4を使用し、滑らかなカタログアニメーションはFramer MotionとGSAPで作成されています。

ソースコードを勉強する際に注目する価値のある、いくつかの興味深い実装の詳細があります:

考え抜かれたシェルスクリプト

生成された .sh ファイルをダウンロードすると、内部は単なる install コマンドのダンプではないことがわかります。スクリプトには基本的な環境チェックが含まれています:

  • ダウンロード前にパッケージがすでにシステムにインストールされているかどうかを確認し、トラフィックを無駄にしません。
  • ネットワーク障害に対する指数関数的バックオフを備えたリトライメカニズム。
  • Flatpakの並列インストールにより、ブラウザやIDEなどの重いソフトウェアの時間が大幅に節約されます。
  • 進捗バーと最終サマリーを備えたカラー форматированный ターミナル出力。

ディストリビューション固有の詳細への対応

開発者は異なるオペレーティングシステムのニュアンスを考慮しています。Arch用のスクリプトを構築している場合、インターフェースは yayparu の間の切り替えを提供し、非公式パッケージの横に表示される明示的なAURバッジがあります。

NixOSの場合、サービスは有効な environment.systemPackages ブロックを生成し、プロプライエタリソフトウェアを自動的にチェックし、Discord、VS Code、Spotifyを選択した場合は設定に権限 nixpkgs.config.allowUnfree = true を追加します。

Viewing the script

インターフェースとオフライン動作

Webアプリケーションはキャッシュサービスワーカーを備えたフル機能のPWAとして動作します。設定中のマシンのインターネットが一時的に失われても、ページは動作し続けます。

マウスなしで作業するファンには、完全なキーボードナビゲーションがあります:Vimキー(hjkl)、矢印、スラッシュ(/)での検索フィールドフォーカス、Escapeでのクイックリセット。

ローカルで実行するか、独自の環境にデプロイする方法

外部ホスティングに依存したくない場合、またはクローズド環境をセットアップしている場合、プロジェクトはDockerでスピンアップ簡単です。

GitHub Container Registryから готовый コンテナを取得できます:

docker run -d -p 3000:3000 --name tuxmate ghcr.io/abusoww/tuxmate:latest

会社の内部パッケージやカスタムリポジトリを追加する予定がある場合、プロジェクトは標準的なNode.jsツールでビルドします:

git clone https://github.com/abusoww/tuxmate.git
cd tuxmate
npm install
npm run dev

アプリケーション全体のデータベースは、カテゴリ別に分割された標準的なJSONファイルとして src/lib/apps/ ディレクトリに存在します。新しいユーティリティをすべてのディストリビューション正しいパッケージ名で追加することは難しくありません。

実践的なメリットと制限事項

TuxMateは、テスト仮想マシンを頻繁にスピンアップする必要があるシステム管理者や開発者、または新しい従業員のためにラップトップを準備する必要がある人にとって、長い間存在していた痛みポイントに対処します。

散らばったテキストノートに apt install ... コマンドを維持する代わりに、ビジュアルストアフロントが手に入ります。Docker、Git、Alacritty、Neovim、必要なブラウザを選択し、1行をコピーして実行します。

念頭に置くべき制限:

  • パッケージデータベースは現在約200のアプリケーション含まれているため、 specialized ソフトウェアは引き続き手動でインストールする必要があります。
  • リポジトリのパッケージ名は時間とともに変化するため、 sudo 権限で実行する前に生成されたコードを確認することが依然として不可欠です。

試してみる価値はあるか

TuxMateは、GPL-3.0ライセンスの下でソースコードが 利用可能な solid なオープンソースツールです。Linuxシステムのセットアップ最も骨の折れる部分を引き受け、ディストリビューション間の移行中に多くの時間を節約します。

プロジェクトの公式サイトでWebバージョンを試すことができ、必要なツールが欠けている場合、またはディストリビューションのパッケージ名に不正確さを発見した場合は、作成者はpullリクエストを歓迎します。

関連プロジェクト