web-dev-qa-db-ja.com

スーパーユーザーモードでGUIエディターを開くことができない

ローカルミラー情報を追加するためにsources.listを編集しようとしました。コマンドラインエディタに慣れていないため、Sudo mousepad /etc/apt/sources.listを使用してみました。

次のエラーレポートが表示されました。

No protocol specified

(mousepad:4942): Mousepad-ERROR **: Cannot open display: 

Gedit、kwriteなど、他のいくつかのエディタを試しましたが、同様のエラーレポートが表示されます。

No protocol specified

** (gedit:4957): WARNING **: Could not open X display
No protocol specified
Unable to init server: Could not connect: Connection refused

(gedit:4957): Gtk-WARNING **: cannot open display: :0

私は、Debian Jessieを実行しているローカルの64ビットシステムを使用しています。

4

システムファイルを編集するためにrootとしてエディタを実行するべきではありません。sudoeditを使用する必要があります(特にSudoがすでに設定されているため)。これにより、ファイルのコピーが作成されます。このファイルを編集し、任意のエディターで開き、編集が完了するまで待ちます。変更を加えた場合は、システムファイルにコピーして戻します。

もう少し詳しく言うと、

Sudo_EDITOR="gedit -w" sudoedit /etc/apt/sources.list

この意志:

  • ファイルの編集が許可されていることを確認してください(/etc/sudoersSudo構成に従って、あなたのファイルは既に大丈夫です)。
  • /etc/apt/sources.listを一時ファイルにコピーして、編集可能にします。
  • 一時ファイルでgeditを開始します。
  • ファイルを閉じるまで待ちます(これが-wオプションが必要な理由です)。
  • 一時ファイルを変更したかどうかを確認し、変更した場合は元のファイルにコピーします。

シェルのスタートアップファイルでSudo_EDITORを永続的に設定できます(~/.bashrc)。定義されていない場合、sudoeditVISUALEDITORもチェックします。編集セッションが終了するのを待つことができる限り、任意のエディターを指定できます。

6
Stephen Kitt

入力Sudo apt edit-sourcesソースリストをnanoで開きます。

0
user8779