他のテキストエディタではファイルを編集できるのに、Geditではファイルを編集できない

他のテキストエディタではファイルを編集できるのに、Geditではファイルを編集できない

基本的にタイトルの通りです。どうやら、必要な権限がすべて備わっている基本的なテキスト ファイルに対しても、gedit には書き込み権限がないようです。実際、他の IDES/テキスト エディター (Atom や LibreOffice など) では、このようなファイルを問題なく開いたり変更したりできます。トラブルシューティングを試みましたが、問題を解決できませんでした。再インストールとアップグレードを試みましたが、問題は解決しませんでした。Gedit を sudo として実行することはできますが、ポイントは、ドキュメントの簡単な readme ファイルの読み取り/書き込みにスーパーユーザーにならないようにすることです。最悪の場合、ATOM をメインのテキスト エディターとして使用すればよいと思いますが、簡単なテキスト ファイルの簡単な変更には Gedit を使い続けたいと思います。

たとえば、「Qiime2_notes.txt」というファイルを読み取ろうとしています。

$ ls -l
total 36
-rw-r--r-- 1 administrador administrador   164 de ma 20 10:52 Humann-notes.txt
-rw-r--r-- 1 administrador administrador  7697 d’abr  9 11:54 notes.txt
-rw-r--r-- 1 administrador administrador   281 de ma  4 17:56 Qiime2_automation_draft
-rwxrwxr-x 1 administrador administrador 19906 d’abr  9 13:02 Qiime2_notes.txt

gedit で開こうとします:

gedit Qiime2_notes.txt

エラー警告なしでファイルを開くことはできますが、テキストを書き込んだり、選択したり、保存したりすることはできません。

基本的に、テキストを変更する許可がなかったかのように:

ss

ただし、 で開くとsudo gedit Qiime2_notes.txt、完璧に動作します。

これでファイルを完全に修正できるようになりました:

ss

ただし、atom Qiime2_notes.txtこれを使用して開くと、sudo がなくても完全に機能します。

なぜこのようなことが起こるのか、何か考えはありますか?

答え1

私はそれが dconf の問題であると疑い、コマンドラインから起動したときに発生したエラーに注意を払うことで、最終的に問題を解決しました。

(gedit:2498): dconf-WARNING **: 22:15:51.286: unable to open named profile (ibus): using the null configuration.

dconfを少し読んだ後、私のインストールにはプロファイルフォルダがない/etc/dconf/profileことに気付きました。これは非標準のインストールだったので当然のことでした。そこで、プロファイルフォルダを作成して、ibusその中に

user-db:user
system-db:ibus

もちろん別のエディタを使用します :-)。

ドキュメントによると、最初の行はユーザースペースのdconfユーザープロファイルを指します dconf の最新バージョンについては、こちらを参照してください。

私の環境によると、DCONF_PROFILE=ibusデフォルトで、現在存在するプロファイルを検索してロードしました。警告は消え、エディターが編集できるようになりました。どうやら、dconf 設定用の ar/w 場所がないと、gedit は準備のみになります。

環境変数が設定されていない場合DCONF_PROFILE、ドキュメントによると、dconf/gsettingはデフォルトでユーザー空間のユーザープロファイルを使用するため、上記の操作は実行されません。これを行うには、次のファイルを削除してください。/etc/profile.d/set-dconfg-profile.sh

これは gedit 固有の修正ではないので、他の gnome/gsetting アプリの問題もいくつか解決できるのではないかと思います。

したがって、オペレーターがまだこの問題を抱えている場合は、欠落しているプロファイルがあるかどうかを確認し、プロファイルを作成するか、そうでない場合は DCONF_PROFILE をエラーで設定することができます。

関連情報