Instalasi dconf / gsettings saya rusak. Bagaimana saya bisa memperbaikinya tanpa menginstal ulang Ubuntu?

24

Saya menjalankan Ubuntu 12.04.1 LTS x64 di VirtualBox. Setelah satu misclick yang sangat disayangkan (reset state yang disimpan bukannya load state yang disimpan) saya mendapat masalah yang sangat menjengkelkan.

Hampir semua aplikasi (unity, synaptic, gedit, dll.) Mencetak saat mulai:

Using the 'memory' GSettings backend.  Your settings will not be saved or shared with other applications.

Dan semua pengaturan GUI diatur ulang setelah reboot.

Gejala lain:

$ GSETTINGS_BACKEND=dconf dconf-editor
(dconf-editor:2353): GLib-GIO-WARNING **: Can't find module 'dconf' specified in GSETTINGS_BACKEND
GLib-GIO-Message: Using the 'memory' GSettings backend.  Your settings will not be saved or shared with other applications

Tetapi /usr/lib/x86_64-linux-gnu/gio/modules/libdconfsettings.sohadir.


Apa yang saya coba (dan itu tidak membantu):

  • sudo apt-get install -f --reinstall dconf-tools libdconf0 libdconf-dbus-1-0 dconf-service
  • Bangun dconf-0.5 dari sumber dan make installitu
  • Buat profil pengguna kosong dan mulai program di sana

Saya harus tetap menginstal Ubuntu saat ini sehingga instal ulang lengkap bukan pilihan bagi saya.

Bagaimana saya bisa memperbaikinya?

Dmitry
sumber
1
Saya menemukan Pesan GLib-GIO yang sama ketika mencoba menggunakan gsettings untuk mengatur posisi Peluncur. Saya mencari melalui posting forum dan mencoba saran di sini termasuk mengatur ulang konfigurasi tautan dinamis menggunakan ldconfig. Namun, semua tidak dapat memperbaiki masalah. Kemudian posting Dmitry membuat saya berpikir untuk menggunakan ldd untuk memeriksa dependensi objek 'gsettings' yang dibagikan, yang menyebabkan saya mengetahui executable yang saya gunakan berasal dari instalasi Anaconda. Dengan menggunakan versi di / usr / bin menyelesaikan masalah.
Panna

Jawaban:

23

Ini juga dapat terjadi jika Anda memiliki PATHkonflik dengan manajer lingkungan Python seperti Anaconda.

Pastikan untuk berlari which gsettingssebelum terlalu dalam. Jika itu tidak mencetak /usr/bin/gsettingsdan sebaliknya sesuatu seperti /home/{username}/anaconda3/bin/gsettingsAnda mungkin memiliki sesuatu .profile/ .bashrc/ .zshrcseperti:

export PATH=$HOME/anaconda3/bin:$PATH

Ubah ke:
export PATH=$PATH:$HOME/anaconda3/bin

Pengakhiran aplikasi alih-alih pra- prending ke PATHvariabel akan menyelesaikan masalah Anda, tetapi ketahuilah bahwa apa pun di sistem Anda bin, atau PATHlokasi lain , akan menggantikan Anda anaconda3/bin.

Opsi lain adalah alias /usr/bin/gsettings:

alias sys-gsettings=/usr/bin/gsettings
sys-gsettings get org.gnome.todo view
austince
sumber
3
Bagian pertama (berlari which) adalah saran yang bagus. Bagian kedua, tidak terlalu banyak. Anda umumnya ingin lingkungan Anda berjalan menggunakan pengaturannya sendiri. Solusi yang lebih baik, atau setidaknya alternatif, mungkin untuk dijalankan secara eksplisit /usr/bin/gsettingsdaripada mengacaukannya PATH.
Fisikawan Gila
Yup, sangat setuju dengan Anda! Saya pikir secara keseluruhan, Anda umumnya harus mengetahui bagaimana PATHsumber / diterapkan.
sejak
Ini memecahkan masalah saya di Ubuntu 18,04 jawaban yang sangat bagus +1
Pilih
Karena ini mendapatkan daya tarik, saya pikir cara lain yang baik mungkin untuk menjaga anaconda keluar dari jalur Anda jika Anda mengalami konflik dan menjalankan perintah dengan python -m [command] [...args]sebagai gantinya.
sejak
Saya harus memperbarui ini di .bashrc saya juga (.profile).
Barun
11

Saya sudah menemukan solusinya. Tampaknya saya mendapat beberapa pustaka yang dibuat khusus di pustaka sistem /usr/local/libyang "dibayangi" itu /usr/lib/x86_64-linux-gnu/.

Saya menemukannya dengan memeriksa pustaka dinamis yang dimuat oleh libdconfsettings.so:

ldd /usr/lib/x86_64-linux-gnu/gio/modules/libdconfsettings.so

...
<  several dynamic libraries from /usr/local/lib >
...

Itu terjadi karena urutan jalur pencarian untuk pustaka dinamis (didefinisikan dalam /etc/ld.so.conf.d/). Urutannya adalah sebagai berikut:

  1. / lib / i386-linux-gnu
  2. / usr / lib / i386-linux-gnu
  3. / lib / i686-linux-gnu
  4. / usr / lib / i686-linux-gnu
  5. / usr / local / lib
  6. / lib / x86_64-linux-gnu
  7. / usr / lib / x86_64-linux-gnu

Jadi jika misalnya Anda memasukkan sendiri libc.soke /usr/local/libdalamnya akan dimuat bukan default libc.sodari /lib/x86_64-linux-gnu.

Cara mengatasinya:

sudo mv /etc/ld.so.conf.d/libc.conf /etc/ld.so.conf.d/xuserlocal.conf
sudo ldconfig
sudo reboot
Dmitry
sumber
2
Terima kasih, saya juga punya masalah ini, karena saya mencoba mengembangkan tambalan untuk glib dan dieksekusi sudo make install. sudo make uninstallmemecahkan masalah dengan menghapus perpustakaan-perpustakaan itu di/usr/local/lib/
mxmlnkn
1
+1. Benar-benar menyelesaikan masalah yang sama muncul setelah instalasi Glib2.
111
2
Linux Mint terus kembali ke pengaturan default dan tidak menghargai perubahan yang saya buat dan check-in ganda dconf-editor. Ternyata saya telah membangun glib dari sumber dan sudo make installyang saya tidak tahu tidak akan membiarkan saya mengubah latar belakang atau jam saya, atau pengaturan kayu manis lainnya. Membuatku gila. Tautan balik
RyanNerd
saya mendapatkan kesalahan ini! mv: tidak dapat stat '/etc/ld.so.conf.d/libc.conf': Tidak ada file atau direktori seperti itu dan saya tidak memiliki perpustakaan di / usr / loca / lib saya kecuali lingkungan python yang saya miliki di Anaconda. tetapi seluruh masalah dimulai ketika saya menginstal paket baru. dan itu tidak terjadi ketika saya menjalankan kode saya di jupyter-notebook bukan IDE!
Amir
@ Amir Apakah output ldd sama dengan deskripsi masalah? Mungkin Anda memiliki masalah lain.
Dmitry
7

Pertama periksa apakah perintah ini kembali true:

gsettings writable com.canonical.Unity.Launcher favorites

Jika tidak, instal backend dengan:

sudo apt-get install dconf-gsettings-backend 

Jika ini juga tidak membantu, setel ulang profil Anda dengan:

rm -rf ~/.gnome ~/.gnome2 ~/.gconf ~/.gconfd ~/.metacity .config/dconf/*

Setelah itu reboot.

Frantique
sumber
1
perintah pertama mengembalikan 'true' (bersama dengan "using 'memory' backend"). Mengenai menghapus konfigurasi pengguna: Saya sudah mencoba membuat profil kosong dan masalahnya tetap ada bahkan dengan akun pengguna kosong.
Dmitry
Apakah Anda telah menginstal dconf-gsettings-backend?
Frantique
Ya, dconf-gsettings-backend diinstal (dan diinstal ulang beberapa kali).
Dmitry
Anda menyebutkan kesalahan klik. Di mana itu terjadi?
Frantique
1
Terima kasih atas jawaban anda. Saya menemukan solusinya (diposting sebagai jawaban)
Dmitry
2

Saya hanya ingin menambahkan pengalaman pribadi saya tentang ini dengan ubuntu 16.10. Milik saya berhenti berfungsi setelah menggunakan lingkungan desktop GNOME untuk sementara waktu, dan kemudian beralih ke Unity untuk menunjukkan kepada teman betapa buruknya tampilannya (IMO: D), dan kembali ke GNOME. Saya kemudian mulai mendapatkan "... menggunakan memori backend ...".

Perbuatan

rm -rf ~/.gnome ~/.gnome2 ~/.gconf ~/.gconfd ~/.metacity .config/dconf/*
sudo ldconfig
sudo reboot

Memperbaikinya untukku.

Gavin Ridley
sumber
1
Perhatikan bahwa ini menghapus semua konfigurasi untuk desktop Anda.
moorepants
1

Saya mengalami hal yang sama di Debian Jessie. Tapi solusi penanya (dia gagal dengan itu) tepat untuk kasus saya:

 sudo apt-get install -f --reinstall  dconf-tools libdconf0 libdconf-dbus-1-0 dconf-service

Masalah ini telah membunuh saya, tetapi Anda menyelamatkan hidup saya, Terima kasih: D

pengguna410988
sumber
0

Pastikan Anda memiliki modul yang menyimpan (libdconfsettings.so di / usr / lib / x86_64-linux-gnu / gio / modules / atau / usr / lib / gio / modules / atau di mana pun Anda menyimpan modul GIO Anda). Di Ubuntu file itu disediakan oleh paket dconf-gsettings-backend; instal ulang yang satu itu sudah cukup ( sudo aptitude reinstall dconf-gsettings-backend).

RJVB
sumber
0

Ini bekerja untuk saya (dan itu terlihat seperti masalah Python Anaconda yang sama yang diangkat oleh Dmitry).

$ export GIO_EXTRA_MODULES=/usr/lib/x86_64-linux-gnu/gio/modules/

(Itu menyebabkan saya tidak dapat mengubah gsettings - terutama pengaturan printer untuk Gedit.)

Sumber:

https://github.com/conda-forge/glib-feedstock/issues/19

markling
sumber