質問 この質問 考えさせられました-Linuxで利用できるポータブルアプリはありますか?多くの単純なツールをスタンドアロンで実行できることは知っていますが、一般的なLinuxディストリビューションではセキュリティ上の制限が発生しますか?
とにかくほとんどのデフォルトのLinuxシステムでツールなどが利用できることを考えると、これも必要ですか?
編集:明確にするために、私は既存のLinuxシステムで実行できるアプリを探しています-OS全体を持ち歩きたくないのですが、私がする必要がなければ。
GNUツールチェーンを使用するほとんどのアプリケーションは、次のようなソースから構築できます。
./configure --prefix=[directory which will contain your 'portable' application]
make
make install
その後、互換性のあるライブラリを備えた別のコンピュータに移動しました。
Linuxにはレジストリがないため、通常、多くのアプリケーションを「インストール」する必要はなく、ソースからビルドできます。そのため、「My Specialy Portable©applications for Linux」を作成することはまったく無意味なので、誰も気にしないと思います。
この質問の一番上の答え を見るだけで、レジストリとライセンス管理を備えたプロプライエタリアプリケーションの世界でアプリケーションを「ポータブル」「便利」にするという愚かな概念を理解できます。
./configure
トリックは、一部のアプリケーションで機能します。ただし、多くのアプリケーションはプレフィックスを自身にエンコードし、実行時にそれを使用してサポートファイルを検索します。また、共有ライブラリファイルをロードする機能も必要です(ただし、LD_LIBRARY_PATH
環境変数を設定してそれを支援することができます)。ただし、この結果、ポータブルアプリケーションは移植性が低くなる可能性があります。つまり、指定されたプレフィックスにあるかどうかに依存します。これはおそらく多くの場所で機能しますが(ほとんどの最新のディストリビューションはメディアを/media/DISKNAME
にマウントします)、アプリケーションが真にポータブルで場所に依存しないことを妨げます。
したがって、正味の答えは、ポータブルLinuxアプリケーションを作成することは不可能ではありませんが、微妙な点に満ちているということです。これが、Windowsの場合ほど実行されない理由の主な要因だと思います。さらに、パブリックコンピューティング施設(ポータブルアプリケーションのメリットの大部分が発生する場所)は通常、Linuxを実行しません。注目すべき例外は大学の研究室ですが、通常はホームディレクトリに追加のソフトウェアをインストールできます。
あなたの質問に対するもう1つの見方は、クライアント側のコードを一度記述してから、フレームワークを活用してiOS用のクライアント合成の手間のかかる作業を行う今日のスタートアップの概念です。AndroidおよびWeb。ここではビジネスロジックポータブルでありながら、そのツールによって自動的に移植されます。そのようなフレームワークはたくさんありますが、Meteorはその1つです。
このように考えると、アプリストアで見つかるアプリのかなりの割合がこのポータブルな遺産を持っています。
この考えをさらに曖昧にするために、WebAssemblyを使用して、静的にコンパイルされた従来のサーバーサイド言語の数を増やしてブラウザーコード(定義ではjavascript)を記述し、解析してjavascriptを合成してクライアントをターゲットにすることができます。
あなたはLinuxアプリについて質問していますが、事実上nodejsにラップされたGUIまたはコマンドラインであるElectronのようなツールを使用すると、ポータブルLinuxアプリのアイデアは選択肢の爆発的な増加を経験しています
Linux for Travellers このトピックを追跡し、Linuxを対象としたポータブルアプリのインストールが(まだ?)ないという事実を回避するためのいくつかのトリックがあります-おそらくあなたが言及した理由のためです:インストール権限がある場合すでに新しいアプリケーションを追加するのは簡単なので、ポータブルアプリケーションを使用する必要はありません。
HackToLive.org(UbuntuのSuper OSバージョンのメンテナー)は、Linux用のいくつかのポータブルアプリを管理しています。
ポータブルLinuxアプリ を確認できます。ポータブルバイナリをダウンロードして実行可能にするだけです。必要なすべての依存関係がバイナリに含まれています。
アプリをポータブルにするために、ログイン時にホームフォルダーに配置するシンボリックリンクを作成できる場合があります。アプリは、シンボリックリンクを介して、フラッシュドライブなどのリードする場所への設定を保存します。私はこれをポータブルMinecraftの保存に使用しました。
既存のLinuxシステムでアプリを実行する際の問題は、多くの場合、アプリが共有ライブラリを使用するようにコンパイルされることです。多くのLinuxディストリビューションと多くのバージョンのベースライブラリがあります。運が良ければ、既存のLinuxシステムには同じバージョンのライブラリがあり、アプリは正しいバージョンのライブラリにリンクされます。そうでなければ、それは機能しません。回避策は、静的にリンクされたライブラリを使用して必要なアプリをコンパイルすることですが、これにより、プログラムのサイズが大幅に大きくなります。
フィールドに新しいプレーヤーがいます AppImage 。アプリケーションは、すべての依存関係が含まれている単一のファイルとしてパッケージ化されているため、基になるディストリビューションに関係なく実行できます。
AppImageHub にアプリ画像のリポジトリがあります。