ソフトウェアセンターまたはDEBファイルを使用してアプリケーションをインストールする場合、通常はすべてのユーザーに対してシステム全体にインストールされます。
単一のユーザーのみにアプリケーションをインストールする方法はありますか?
達成したい内容に応じて、この作業を行うためのさまざまな方法があります(または、少なくとも、必要な機能をハックして見せる)。
多くの方法でのソフトウェアのインストールは、リソースを利用可能にするか、システムに既に存在するものへのアクセスを許可することに帰着します。
プリンターへのアクセスを許可するか、ユーザーが特定のディレクトリでプログラムを実行できるようにするかどうかにかかわらず、これを実現する方法があります。Ubuntuにネイティブかもしれませんが、これらの種類のソリューションは一般に(もちろん) .debインストールの後に追加されます。
追加できるインストール後制御の2つの一般的なクラスを次に示します。適切な環境、たとえば厳密に制御されたグループポリシーが適切に設定されている場合、基本システムを適切に設定しておけば、これは簡単になります。これらの種類の許可は、LDAPまたはユーザーまたはグループごとに認証と許可を与えることができる同様のシステムに結び付けることさえできます。
可視性制御
私はおそらく多少似たような状況に陥りましたが、私の場合、ユーザーは(まだ)あまり洗練されていませんでした(全員が7歳未満です)。私にとっては、Gnomeメニューを非表示にするか、デスクトップランチャーを削除するだけで機能しました。
ディレクトリから実行可能ビットを削除すると、プロセスがそれらを検索またはトラバースすることができなくなります。これらを効果的に非表示にし、ユーザーごとに使用不可にすることができます。たとえば、ファイルアクセスに基づいてメニューを作成するデフォルトのシステムポリシーがある場合、この種の化粧品のソリューションを取得し、追加の労力をほとんどかけずに後続のインストールで機能させることができます。
実行制御
リソースの制御は、Unix許可、apparmorプロファイル、SELinux許可などを介して実行できます。アプリケーションによっては、他のレベルの制御フィルタリングが作用する場合があります。よりターゲットを絞ったソリューションがない場合は、特定のプログラムの周りにラッパーを作成して、ユーザーまたはプロセスのアクセスを制御する必要があります。
まあdpkg
は設計の目的ではないので、役に立ちません。システムにインストールされたパッケージのルート所有者の国勢調査になりたい。
頭に浮かぶ唯一のことは、パッケージを抽出し、ホームディレクトリに手動でファイルを配置しようとすることです。
ただし、これはいくつかの場合にのみ機能します。多数のパッケージがチャンクに分割され(/usr/bin
の実行可能ファイルまたはスクリプト、/lib
のライブラリ、および/usr/share
のライブラリなど)、これらの場所はビルドスクリプトによってハードコーディングされます。したがって、このようなものを~
に引き込もうとすると、壊れます。依存関係を解くのに何時間も費やすこともできますが、がんの治療法を見つけたり、世界の美しさを吸収するなど、あなたの時間に役立つ何かをすることができます。
ソフトウェアを書いた人からパッケージ化されていないバージョンを取得するだけで、はるかに良くなります。ほとんどすべてのフリーソフトウェアは、圧縮されたアーカイブの形式でソースとして入手できるため、それを入手してビルドするだけです。 make install
ステップは実行しません。アプリは構築されています。好きな場所に置くだけです。
私はこの主題についてあまり知りませんが、他の回答から、パッケージを/
の代わりにdpkg
を使用して、--root
パラメーターを使用して別のディレクトリにインストールし、 [chroot
パッケージが「インストール」されたディレクトリ(もちろん、ユーザーのホームディレクトリのディレクトリ)。
root
以外のユーザーにパッケージをインストールするには、fakechroot
の代わりに chroot
で上記のプロセスを使用することができます。
免責事項:私はこれを試さず、dpkg
またはchroot
を書いている時点ではあまり経験がありませんが、私は何からdoはこれらのツールについて知っており、このプロセスはmightで機能します。
chroot
機能なしでroot
の効果を達成したい人に役立つ情報があるリンク:
chroot
を実行している人にとっても役立つようですfakechroot
のmanページ )私は今、この主題に触れるもので少しやりましたが、さらにいくつかを見つけました...
フラグメント(ローカル環境のビルディングブロック):
chroot(1)
をエミュレートします完全(完全なローカル環境プロバイダー):
chroot(1)
、mount --bind
、binfmt_misc
の機能を提供し、qemu-user-spaceを使用して他のアーキテクチャからバイナリを実行しますSummary:ルート権限をローカルでエミュレートするか、実際に持っていることにより、DEBパッケージをローカル環境にインストールできます。
おそらくdpkg
の--root
オプションを使用して、別のディレクトリにインストールできます。ただし、アプリケーションが/etc
などの固定された場所で何かを探す場合、おそらく問題が発生します。
つまり、簡単な方法はないと思います。
実行可能ファイルの所有権を変更して、1人のユーザーのみが実行できるようにすることができます。その後、必要に応じて、他のユーザーのメニューからアプリケーションを削除できます。
疑わしい。
Debは主にアーカイブに展開され、インストール時にファイルシステムのルートに抽出されます(さらにいくつかの設定)。 1人のユーザーだけにインストールする場合は、何らかの方法で/ home/userフォルダーにインストールする必要があります。あなたがそうしても、彼らは動作しません、例えばアプリケーションバイナリは/ usr/bin(または同様のsth)に格納されず、起動しようとしてもシステムはそれらを見つけられません。同様に、システムは/ homeのどこかにあることをシステムが認識しないため、ライブラリなどは役に立たないでしょう。 ブルートフォースアプローチを試して、PATH変数を調整してdebアーカイブからファイルを抽出した場所を指すことができますが、そうではありませんVERYのみ安全ではありませんが、互換性の問題が発生する可能性があります(GNOMEは.desktopファイルを/ usr/share/applicationsに拡張するため、メニューエントリは機能しません)。
さらに、一部のユーザーのみにパッケージをインストールした場合、自分用にインストールした他のユーザーと競合する他のユーザーがインストールしたパッケージと、おそらく他の多くのパッケージ管理関連の問題が表示されると、狂った依存関係の問題が発生する可能性があります。
これらすべてのトラブルにより、ユーザーごとにパッケージを個別に管理することは非常に困難になります。したがって、.debsの背後にあるアイデアがそれを許可しないため、1人のユーザーだけにパッケージをインストールすることは不可能のようです。