การติดตั้ง dconf / gsettings ของฉันเสีย ฉันจะแก้ไขได้อย่างไรโดยไม่ต้องติดตั้ง Ubuntu ใหม่


24

ฉันใช้ Ubuntu 12.04.1 LTS x64 ใน VirtualBox หลังจากหนึ่ง misclick โชคร้ายมาก (รีเซ็ตสถานะที่บันทึกไว้แทนที่จะโหลดสถานะที่บันทึกไว้) ฉันมีปัญหาที่น่ารำคาญมาก

แอปพลิเคชั่นเกือบทั้งหมด (เอกภาพ, ซินแนปติก, gedit ฯลฯ ) พิมพ์ได้ตั้งแต่เริ่มต้น:

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

และการตั้งค่า GUI ทั้งหมดจะรีเซ็ตหลังจากรีบูต

อาการอื่น:

$ 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

แต่/usr/lib/x86_64-linux-gnu/gio/modules/libdconfsettings.soเป็นปัจจุบัน


สิ่งที่ฉันพยายาม (และมันก็ไม่ได้ช่วย):

  • sudo apt-get install -f --reinstall dconf-tools libdconf0 libdconf-dbus-1-0 dconf-service
  • สร้าง dconf-0.5 จากแหล่งต่าง ๆ และmake installมัน
  • สร้างโปรไฟล์ผู้ใช้ที่ว่างเปล่าและเริ่มโปรแกรมที่นั่น

ฉันต้องทำการติดตั้ง Ubuntu ต่อไปดังนั้นการติดตั้งที่สมบูรณ์นั้นไม่ใช่ตัวเลือกสำหรับฉัน

ฉันจะแก้ไขได้อย่างไร


1
ฉันพบข้อความ GLib-GIO เดียวกันเมื่อพยายามใช้ gsettings เพื่อกำหนดตำแหน่งตัวเรียกใช้ ฉันค้นหาผ่านโพสต์ของฟอรัมและลองใช้คำแนะนำที่นี่รวมถึงการรีเซ็ตการตั้งค่าตัวเชื่อมโยงแบบไดนามิกโดยใช้ ldconfig อย่างไรก็ตามทุกคนไม่สามารถแก้ไขปัญหาได้ จากนั้นโพสต์ของ Dmitry ทำให้ฉันคิดว่าจะใช้ ldd เพื่อตรวจสอบการพึ่งพาวัตถุที่ใช้ร่วมกัน 'gsettings' ซึ่งทำให้ฉันรู้ว่าปฏิบัติการที่ฉันใช้อยู่นั้นมาจากการติดตั้งของ Anaconda โดยใช้รุ่นใน / usr / bin สามารถแก้ไขปัญหาได้
panna

คำตอบ:


23

สิ่งนี้อาจเกิดขึ้นได้หากคุณมีPATHข้อขัดแย้งกับผู้จัดการสภาพแวดล้อมของ Python เช่น Anaconda

ตรวจสอบให้แน่ใจว่าได้ทำงานwhich gsettingsก่อนที่จะลึกเกินไป หากยังไม่ได้พิมพ์/usr/bin/gsettingsและแทนที่จะเป็นสิ่งที่/home/{username}/anaconda3/bin/gsettingsคุณอาจมี.profile/ .bashrc/ .zshrcชอบ:

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

เปลี่ยนเป็น:
export PATH=$PATH:$HOME/anaconda3/bin

Appสิ้นสุดแทนก่อน prending กับPATHตัวแปรจะแก้ปัญหาของคุณ แต่ทราบว่าสิ่งที่อยู่ในระบบของคุณbinหรืออื่น ๆสถานที่ที่จะมาแทนที่ของคุณPATHanaconda3/bin

ตัวเลือกอื่นจะเป็นนามแฝง/usr/bin/gsettings:

alias sys-gsettings=/usr/bin/gsettings
sys-gsettings get org.gnome.todo view

3
ส่วนแรก (วิ่งwhich) เป็นคำแนะนำที่ดีเยี่ยม ส่วนที่สองไม่มาก โดยทั่วไปคุณต้องการให้สภาพแวดล้อมของคุณทำงานโดยใช้การตั้งค่าของตัวเอง ดีกว่าหรืออย่างน้อยทางเลือก, การแก้ปัญหาอาจจะมีการทำงานอย่างชัดเจนแทนการล้อเล่นกับ/usr/bin/gsettings PATH
นักฟิสิกส์บ้า

ใช่เห็นด้วยกับคุณโดยสิ้นเชิง! ฉันคิดว่าโดยรวมคุณควรทราบว่าPATHแหล่งที่มา / นำไปใช้เป็นอย่างไร
austince

มันแก้ปัญหาของฉันใน Ubuntu 18.04 คำตอบที่ดีมาก +1
เลือก

เนื่องจากนี่เป็นการเริ่มฉุดฉันคิดว่าวิธีที่ดีอีกวิธีหนึ่งก็คือการหลีกเลี่ยงงูถ้าคุณมีข้อขัดแย้งและใช้คำสั่งpython -m [command] [...args]แทน
austince

ฉันต้องอัปเดตสิ่งนี้ใน. bashrc ของฉันเช่นกัน (.profile)
บารัน

11

ฉันพบวิธีแก้ปัญหาแล้ว ดูเหมือนว่าฉันมีห้องสมุดที่สร้างขึ้นเองหลายแห่งใน/usr/local/libห้องสมุดระบบ "แชโดว์" จาก/usr/lib/x86_64-linux-gnu/นั้น

ฉันค้นพบมันโดยการตรวจสอบไลบรารีแบบไดนามิกที่โหลดโดยlibdconfsettings.so:

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

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

มันเกิดขึ้นเนื่องจากลำดับของพา ธ การค้นหาสำหรับไลบรารีแบบไดนามิก (กำหนดไว้ใน/etc/ld.so.conf.d/) คำสั่งดังต่อไปนี้:

  1. / lib / i386-ลินุกซ์ GNU
  2. / usr / lib / i386-ลินุกซ์ GNU
  3. / lib / i686-ลินุกซ์ GNU
  4. / usr / lib / i686-ลินุกซ์ GNU
  5. / usr / local / lib
  6. / lib / x86_64-ลินุกซ์ GNU
  7. / usr / lib / x86_64-ลินุกซ์ GNU

ดังนั้นถ้าเช่นคุณใส่ของคุณเองlibc.soลงไป/usr/local/libมันจะถูกโหลดแทนการเริ่มต้นจากlibc.so/lib/x86_64-linux-gnu

การแก้ไข:

sudo mv /etc/ld.so.conf.d/libc.conf /etc/ld.so.conf.d/xuserlocal.conf
sudo ldconfig
sudo reboot

2
sudo make installขอบคุณฉันยังมีปัญหานี้เพราะผมพยายามที่จะพัฒนาแพทช์สำหรับกะล่อนและดำเนินการ sudo make uninstallแก้ไขปัญหาโดยลบห้องสมุดเหล่านั้นที่/usr/local/lib/
mxmlnkn

1
+1 แก้ไขปัญหาที่คล้ายกันอย่างแท้จริงเกิดขึ้นหลังจากการติดตั้ง Glib2
111

2
ลินุกซ์มิ้นท์เก็บไว้จะกลับไปที่การตั้งค่าเริ่มต้นและการไม่เคารพการเปลี่ยนแปลงใด ๆ dconf-editorที่ผมทำและดับเบิลตรวจสอบใน ปรากฎว่าฉันได้สร้างกะล่อนจากแหล่งที่มาและsudo make installที่ฉันไม่มีความคิดจะไม่ให้ฉันเปลี่ยนพื้นหลังหรือนาฬิกาของฉันหรือการตั้งค่าอบเชยอื่น ๆ ถูกผลักฉันถั่ว ลิงก์ย้อนกลับ: forums.linuxmint.com/viewtopic.php?t=244360&start=20
RyanNerd

ฉันได้รับข้อผิดพลาดนี้! mv: ไม่สามารถ stat '/etc/ld.so.conf.d/libc.conf': ไม่มีไฟล์หรือไดเรกทอรีดังกล่าวและฉันไม่มีห้องสมุดใด ๆ ใน / usr / loca / lib ของฉันยกเว้นสภาพแวดล้อมของ Python ที่ฉันมีใน Anaconda แต่ปัญหาทั้งหมดเริ่มต้นเมื่อฉันติดตั้งแพ็คเกจใหม่ และจะไม่เกิดขึ้นเมื่อฉันเรียกใช้รหัสใน jupyter-notebook แทน IDE!
Amir

@Amir เอาต์พุต ldd เหมือนกับคำอธิบายปัญหาหรือไม่ อาจเป็นเพราะคุณมีปัญหาอื่น
Dmitry

7

ก่อนอื่นให้ตรวจสอบว่าคำสั่งนี้ส่งคืนหรือไม่true:

gsettings writable com.canonical.Unity.Launcher favorites

หากไม่ติดตั้งแบ็กเอนด์ด้วย:

sudo apt-get install dconf-gsettings-backend 

หากวิธีนี้ไม่ช่วยได้ให้รีเซ็ตโปรไฟล์ของคุณด้วย:

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

รีบูทหลังจากนั้น


1
คำสั่งแรกส่งคืน 'true' (พร้อมกับ "using 'memory' backend") เกี่ยวกับการลบการกำหนดค่าผู้ใช้: ฉันพยายามสร้างโปรไฟล์ว่างและปัญหายังคงอยู่แม้จะมีบัญชีผู้ใช้ที่ว่างเปล่า
Dmitry

คุณมี dconf-gsettings-backend ติดตั้งอยู่หรือไม่?
Frantique

ใช่มีการติดตั้ง dconf-gsettings-backend (และติดตั้งใหม่หลายครั้ง)
Dmitry

คุณพูดถึง misclick เกิดขึ้นที่ไหน
Frantique

1
ขอบคุณสำหรับคำตอบ. ฉันพบวิธีแก้ปัญหา (โพสต์เป็นคำตอบ)
Dmitry

2

แค่อยากจะเพิ่มประสบการณ์ส่วนตัวของฉันกับสิ่งนี้ด้วย Ubuntu 16.10 ฉันหยุดทำงานหลังจากใช้สภาพแวดล้อมเดสก์ท็อป GNOME ชั่วขณะหนึ่งจากนั้นสลับเป็น Unity เพื่อแสดงให้เพื่อนเห็นว่ามันดูน่ารังเกียจแค่ไหน (IMO: D) และกลับไปที่ GNOME จากนั้นฉันก็เริ่มรับ "... โดยใช้หน่วยความจำแบ็กเอนด์ ... "

การทำ

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

แก้ไขให้ฉัน


1
โปรดทราบว่าสิ่งนี้จะลบการกำหนดค่าทั้งหมดสำหรับเดสก์ท็อปของคุณ
moorepants

1

ฉันพบสิ่งเดียวกันใน Debian Jessie แต่วิธีการแก้ปัญหาของผู้ถาม (เขาล้มเหลวด้วย) เหมาะสำหรับกรณีของฉัน:

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

ปัญหานี้ได้ฆ่าฉัน แต่คุณช่วยชีวิตฉันขอบคุณ: D


0

ตรวจสอบให้แน่ใจว่าคุณมีโมดูลที่ทำการบันทึก (libdconfsettings.so ใน / usr / lib / x86_64-linux-gnu / gio / modules / หรือ / usr / lib / gio / modules / หรือที่ใดก็ตามที่คุณเก็บโมดูล GIO ของคุณ) ใน Ubuntu นั้นไฟล์ดังกล่าวจัดทำโดยแพ็คเกจ dconf-gsettings-backend ติดตั้งใหม่ที่ควรจะพอเพียง ( sudo aptitude reinstall dconf-gsettings-backend)


0

สิ่งนี้ได้ผลสำหรับฉัน (และดูเหมือนว่าปัญหา Python Anaconda เดียวกันที่ Dmitry สร้างขึ้น)

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

(มันทำให้ฉันไม่สามารถเปลี่ยนการตั้งค่า - โดยเฉพาะการตั้งค่าเครื่องพิมพ์สำหรับ Gedit)

ที่มา:

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

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.