GUIインストールが「ステージの後ろで」動作する方法

GUIインストールが「ステージの後ろで」動作する方法

修正する

間違っていたら訂正してください:マイコンピュータでDebianというGNU / Linuxディストリビューションを使用して作業するときは、コマンドの入力、アプリケーションの実行、ファイルを開くという2つの方法がわかります。

  • コマンドラインインタフェーステキストを入力する場所
  • GUI[別名GUI]:「ウィンドウ」、記号などへのインターフェースを提供します。

「ウィンドウマネージャ」というものがあります。私はGNU / Linuxを使用するときに次のことをします。Xウィンドウシステム[私の知る限り]。

ここに画像の説明を入力してください。


オリジナル投稿


状態:USBスティックの自動マウントを無効にしました/etc/fstab[例/dev/sdb1]。インストールにはroot少なくとも1つのsudo項目が必要です。コマンドラインでは可能ですが、ウィンドウマネージャでは不可能(!)。私の言葉は、ウィンドウautomountマネージャで「記号をクリックすると」何の問題もなくGUIでデバイスを開きますが、CLIではルートでなければならないということです。

質問:GUIからのインストールは「舞台裏で」どのように機能しますか?共通ウィンドウマネージャファイルはありますかconfig、それとも個別に設定する必要がありますか?

mount私はコマンドを理解して使用し、読んで構成する方法を理解し、/etc/fstabそこにあるアイテムを見る場所と/etc/mtabその意味を知っていると思います。

答え1

これはWindows環境(GNOME / KDE /など)によって異なりますが、たとえばGNOMEではgvfs-*-volume-monitor/etc/fstab完全に独立して。

構成ファイルに関連してDEを実行しているユーザーのホームディレクトリには、いくつかの関連ファイルがあります$HOME/.local/share/gvfs-metadata

このU&L Q&Aの質問は次のとおりです。gvfsとは何ですか?私のシステムでなぜ使用するのですか?、GVFSが何であるかを説明しようとしています。これはこれを非常によく説明します。しかし、あなたが本当に尋ねたい質問は、次のU&L Q&Aで解決できると思います。Uディスク自動装着(動作原理)

答え2

簡単な答えは、彼らがトリックを書くということです。彼らはfstab通常、udev挿入イベントを捕捉するためにフックを使用し、ディスクを手動でマウントします。rootこれはファイルマネージャに渡され、dbus新しいディスクを通知したり、マウント解除の代わりsuidにユーティリティを使用したりできますdbus。残念ながら、標準設定オプションはなく、デスクトップワークアウトは複雑さを隠すことを信じているため、これをユーザー文書に文書化せず、開発者文書にのみ文書化し、シングルユーザーシステムを想定するため、USBドライブはXサーバーにログインした最初のユーザーに。

答え3

これは状況の私の理解ですが、専門家ではないので、他の答えほど技術的ではありません。これは長年にわたってこれらのシステムを使用してきた結果であり、詳細に研究していません。

これには、乗り物を管理する3人の主要プレイヤーがあります。

  • ヒューズ: で指定されているように、これはすべての中心です。ウィキペディアページ:

    FUSE(ユーザー空間ファイルシステム)は、権限のないユーザーがカーネルコードを編集せずに独自のファイルシステムを作成できるようにするUnix系コンピュータオペレーティングシステムのオペレーティングシステムメカニズムです。これは、FUSEモジュールが実際のカーネルインタフェースに「ブリッジ」を提供するだけで、ユーザー空間でファイルシステムコードを実行することによって達成されます。

    したがって、デフォルトでは、これは権限のないユーザーがファイルシステムをマウントできるようにすることです。

  • gvfs:Gnomeデスクトップ環境(Gnome、Mate、Cinnamonを含む)スイートでは、新しく接続されたドライブを自動的にマウントするデーモンです。もちろん渡すヒューズ。私はKDEシリーズに対応していますカーチン独立団体

    主なプロセスgvfsは次のとおりです(から抜粋man gvfs)。

    • gvfsd - 主なgvfsデーモン
    • gvfs-fuse-daemon - gvfsをヒューズファイルシステムとしてインストールする
    • gvfsd-metadata - gvfsメタデータの書き込み
  • udev:新しいデバイスを検出し、接続するとスクリプト/コマンドを実行できるようにするシステムです。たとえば、udev新しい画面を検出してその画面にデスクトップをミラーリングできます。

    udevはLinuxカーネルのデバイスマネージャです。主に/ devのデバイスノードを管理します。これはdevfsとhotplugの後継製品です。これは、ファームウェアのロードを含むデバイスを追加/削除するときに/ devディレクトリとすべてのユーザースペース操作を処理することを意味します。

    特にudisksベースのボリュームモニターで動作しているようgvfsです。しかし、それ自体は(参照)によって異なります。gvfs-udisks2-volume-monitorudisksudevman 7 udisks

したがって、デフォルトで(「ひどい単純化」を読む)ドライブを接続すると、ドライブはudevそれを検出してgvfsデーモンに警告してからFUSEデバイスにマウントします。

FUSEはudevすべてのデスクトップ環境で同じで、udevドライブをFUSEファイルシステムで監視およびマウントするDEデーモンが変更されました。

答え4

あなたが探している共通の要素は次のとおりです。ヒューズ たとえば、GNOMEのgvfsはそれを後で使用します。1 これはカーネルとのインタフェースです。みんなに共通だと思います。特権のないLinuxへのシステムの自動インストール[しかしコメントを見て]。 各DEにはカーネルパッチが必要なので、独自のバージョンを作成しません。

このホームページへのリンクは実際に古いです。ここで述べたように、FUSEは数年前に公式カーネルの一部になりましたが、プロジェクトの起源と目的を説明しています(無許可のマウントだけではありません)。

異なるデスクトップ環境があるのと同じ理由で、異なるシステムは異なるスタイルを持つ可能性があります。これは、GUIがどのように/何であるべきかについての異なるビジョンを表します。ユーザーインターフェイスの形式と機能を担当しますが、FUSEは実際のインストールとカーネルレベルの操作を担当します。 FUSEは実際には「自動」部分を実行せず、「無許可」部分に/dev近いですが、自動部分は非常に簡単です。私はこのように動作するインストールアプリケーションを作成しましたが、これは新しいノードの表示を監視するだけです。2この 部分は約100行のC ++コードで構成されています。シンプルで簡単です。このレベルでは、共通のAPIは実際には必要ありません。

1または実際の権限のないインストールを実行している場合はOKです。 Theresaの答えは、一般的なマウントへのアクセスを可能にする新しい方法を扱うことができます。

2 hildredが観察したように、udevコールバックはより良くハッキングの少ないアプローチです。

関連情報