GNU/Linux >> Linux の 問題 >  >> Linux

Linuxパッケージ管理のためのAppImageの使用

Linuxマシン、特にリモートマシンの管理の大部分は、ソフトウェアの管理とインストールです。ローカルアプリケーションで問題が発生した場合、またはファイルシステム上の問題が発生して修正が必要になった場合、物理的な画面の前に座るために何マイルも移動することなく、更新をプッシュしたいことがよくあります。 PluralsightコースのLinuxシステムのメンテナンスとトラブルシューティングで説明しているように、もちろんBashスクリプトを使用して多くの問題を解決できますが、古き良きバイナリに代わるものがない場合もたくさんあります。

一部のリモートシステムに新しいアプリケーションをインストールする必要があると想像してください。そうすれば、それらのコンピューターを使用するチームメンバーは、いくつかのビジネス機能を実行できるようになります。 DebianやRPMなどの主要なLinuxリポジトリシステムの1つの統合と自動化を活用できると、管理タスクが非常に簡単になります。

Linus Torvaldsが私たちに思い出させるのに飽きることがないので、多くのLinuxソフトウェア管理システムの問題は、Linuxソフトウェア管理システムが多すぎることです。何年にもわたって、アプリ開発やLinuxの採用でさえ、ソフトウェアをRPMシステムに導入したい場合、たとえばDebianリポジトリ用にソフトウェアを準備するために費やす時間と作業が役に立たないという事実によって複雑になっています。また、どちらもSUSEのZypperマネージャーには役立ちません。

ソフトウェアサイロの問題に対する有望な解決策の1つは、任意のLinuxディストリビューションで動作する独自の自己完結型環境でアプリケーションを配布することです。この若く成長している分野の標準の1つのオプションは、AppImageです。

AppImagesの操作

その他のLinuxリソース

  • Linuxコマンドのチートシート
  • 高度なLinuxコマンドのチートシート
  • 無料のオンラインコース:RHELの技術概要
  • Linuxネットワーキングのチートシート
  • SELinuxチートシート
  • Linuxの一般的なコマンドのチートシート
  • Linuxコンテナとは何ですか?
  • 最新のLinux記事

私はAppImageにオールインしています。私が言及した他のパッケージ管理システムと同様に、必要に応じて利用できる複雑さはたくさんあります。しかし、基本的に、AppImagesは実際には非常に単純です。 AppImagesは、他のほとんどのパッケージマネージャーのようにリポジトリを介して作業するのではなく、直接送信したり、Webサイトを介して共有したりできる単一のスタンドアロンファイルです。

これがその美しさのイラストです。 AppImagesで遊んでいるときに、技術フォーラムで非常に古い議論に出くわし、同じように古くて放棄されたGitHubプロジェクトと関連するYAMLおよびレシピファイルにたどり着きました。これらは、AppImageパッケージの生成に必要なアーカイブを準備するために必要なかなり複雑なインフラストラクチャを自動的に構築するように設計されています。そのインフラストラクチャはすべて、5年前のリリースのUbuntuで実行するように構築されていましたが、すべてをまとめてappimagetoolを実行すると それに対してコマンドを実行すると、現在のデスクトップでシームレスに機能するAppImageファイルが作成されました。深刻な手直しをせずに他のテクノロジーを使用して実行できる、その複雑さの5年前のGitHubプロジェクトはそれほど多くないと思います。

しかし、私はそこに行くつもりはありません。代わりに、非常に単純なHelloWorldアプリケーションでどのように機能するかを示します。まず、AppStreamパッケージがローカルにインストールされていることを確認します。

Debianベースのシステムの場合、次を実行します:

$ sudo apt install appstream

また、RPMシステムの場合は、次を使用します。

$ sudo dnf install appstream

この記事で参照されているGitリポジトリのクローンを作成します。これは、この例に基づいています。

$ git clone https://github.com/boolean-world/appimage-resources
$ cd appimage-resources
$ ls hello-world-appimage

次に、cd Gitが作成した新しいディレクトリに移動し、周りを見回します。ここには2つのディレクトリがあります。 hello-world-appimageを使用します;もう1つはより複雑なプロジェクトであり、試してみることも検討する必要があります。

helloworld.desktop ファイルは、LinuxGUIシステムがデスクトップアイコンの表示方法を処理する方法を知るために読み取るものです。結局のところ、ファイルの現在の書き込み方法では少し後で問題が発生するため、少し編集してください。Categories=を追加します。 行に値GNOMEを指定します 。最後のセミコロンを忘れないでください:

$ nano hello-world-appimage/helloworld.desktop
        add Categories=GNOME;

appimagetoolのプリコンパイル済みコピーをダウンロードします AppImageGitHubプロジェクトからのバイナリ。 GitHubサイトにアクセスすることをお勧めします。そこには、優れたドキュメントとリソースがたくさんあります。バイナリがダウンロードされたら、ファイルを実行可能にして、hello-world-appimageにポイントします。 ディレクトリ。ただし、最初に、必要なアーキテクチャを指定する必要があります。何らかの理由で、名前がx86_64で終わるツール x86_64を使用してアプリケーションを構築するかどうかを選択することになると、すべてが不安定になります(そこで何が起こっているのかわかりません):

$ wget https://github.com/AppImage/AppImageKit/releases/download/continuous/appimagetool-x86_64.AppImage
$ chmod +x appimagetool-x86_64.AppImage
$ ARCH=x86_64 ./appimagetool-x86_64.AppImage hello-world-appimage

怒っているエラーメッセージが表示されない場合は、実行する準備ができています:

$ ls
$ ./hello-world-appimage-x86_64.AppImage
結論

AppImageは、パッケージ管理に非常に効果的な選択肢です。調べてみると、Linuxディストリビューションが提供するデフォルトの優れた代替手段であることがわかると思います。


Linux
  1. 効果的なプロセス管理のための8つのLinuxコマンド

  2. Linuxでの使い捨てcronジョブにatを使用する

  3. LinuxでAsciiDocを使用するための完全ガイド

  1. cronを使用してタスクをスケジュールするためのLinuxのヒント

  2. aptによるLinuxパッケージ管理

  3. Linux用のPythonアプリケーションをパッケージ化する方法

  1. 組み込みLinuxシステムを構築するための4つのツール

  2. Buka –Linux向けの優れた電子書籍管理

  3. Linux でのパッケージ管理のための 15 の aptitude コマンドの例