Cài đặt dconf / gsinstall của tôi bị hỏng. Làm thế nào tôi có thể sửa nó mà không cần cài đặt lại Ubuntu?


24

Tôi chạy Ubuntu 12.04.1 LTS x64 trong VirtualBox. Sau một lần nhấn nhầm rất đáng tiếc (đặt lại trạng thái đã lưu thay vì trạng thái đã lưu) tôi gặp một vấn đề rất khó chịu.

Hầu hết tất cả các ứng dụng (unity, synaptic, gedit, v.v.) đều được in khi bắt đầu:

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

Và tất cả các cài đặt GUI thiết lập lại sau khi khởi động lại.

Một triệu chứng khác:

$ 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

Nhưng /usr/lib/x86_64-linux-gnu/gio/modules/libdconfsettings.solà hiện tại.


Những gì tôi đã thử (và nó không giúp được gì):

  • sudo apt-get install -f --reinstall dconf-tools libdconf0 libdconf-dbus-1-0 dconf-service
  • Xây dựng dconf-0.5 từ các nguồn và make install
  • Tạo hồ sơ người dùng trống và bắt đầu các chương trình ở đó

Tôi phải tiếp tục cài đặt Ubuntu hiện tại để cài đặt lại hoàn toàn không phải là một tùy chọn cho tôi.

Làm thế nào tôi có thể sửa chữa nó?


1
Tôi đã gặp GLib-GIO-Message tương tự khi cố gắng sử dụng cài đặt gs để đặt vị trí Trình khởi chạy. Tôi đã tìm kiếm thông qua các bài đăng của diễn đàn và thử các đề xuất ở đây, bao gồm cả việc đặt lại cấu hình liên kết động bằng ldconfig. Tuy nhiên, tất cả không thể khắc phục vấn đề. Sau đó, bài đăng của Dmitry khiến tôi suy nghĩ sử dụng ldd để kiểm tra các phụ thuộc đối tượng được chia sẻ của 'gsinstall', điều này khiến tôi phát hiện ra khả năng thực thi mà tôi đang sử dụng đến từ cài đặt của Anaconda. Bằng cách sử dụng phiên bản trong / usr / bin đã giải quyết vấn đề.
panna

Câu trả lời:


23

Điều này cũng có thể xảy ra nếu bạn có PATHxung đột với người quản lý môi trường Python như Anaconda.

Hãy chắc chắn để chạy which gsettingstrước khi nhận được quá sâu. Nếu điều đó không được in /usr/bin/gsettingsvà thay vào đó một cái gì đó giống như /home/{username}/anaconda3/bin/gsettingsbạn có thể có một cái gì đó .profile/ .bashrc/ .zshrcnhư:

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

Thay đổi nó thành:
export PATH=$PATH:$HOME/anaconda3/bin

App kết thúc thay vì trước prending đến PATHbiến sẽ giải quyết vấn đề của bạn, nhưng lưu ý rằng bất cứ điều gì trong hệ thống của bạn bin, hoặc khác PATHđịa điểm, sẽ thay thế của bạn anaconda3/bin.

Một lựa chọn khác là bí danh /usr/bin/gsettings:

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

3
Phần đầu tiên (chạy which) là lời khuyên tuyệt vời. Phần thứ hai, không quá nhiều. Bạn thường muốn môi trường của bạn chạy bằng cách sử dụng thiết lập riêng của nó. Một giải pháp tốt hơn, hoặc ít nhất là thay thế, có thể là chạy rõ ràng /usr/bin/gsettingsthay vì gây rối PATH.
Nhà vật lý điên

Yup, hoàn toàn đồng ý với bạn! Tôi nghĩ về tổng thể, bạn thường nên biết về cách PATHnguồn / được áp dụng.
austince

Nó đã giải quyết vấn đề của tôi trong Ubuntu 18.04 câu trả lời rất hay +1
Chọn

Vì điều này đang có một lực kéo, tôi nghĩ rằng một cách tốt khác có thể là giữ anaconda ra khỏi đường đi của bạn nếu bạn đang có xung đột và chạy các lệnh python -m [command] [...args]thay thế.
austince

Tôi cũng phải cập nhật cái này trong .bashrc của tôi (.profile).
Barun

11

Tôi đã tìm thấy giải pháp. Dường như tôi có một số thư viện được xây dựng tùy chỉnh trong /usr/local/libcác thư viện hệ thống "bị che khuất" đó /usr/lib/x86_64-linux-gnu/.

Tôi phát hiện ra nó bằng cách kiểm tra các thư viện động được tải bởi libdconfsettings.so:

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

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

Nó xảy ra vì thứ tự của các đường dẫn tìm kiếm cho các thư viện động (được xác định trong /etc/ld.so.conf.d/). Thứ tự như sau:

  1. / lib / i386-linux-gnu
  2. / usr / lib / i386-linux-gnu
  3. / lib / i686-linux-gnu
  4. / usr / lib / i686-linux-gnu
  5. / usr / địa phương / lib
  6. / lib / x86_64-linux-gnu
  7. / usr / lib / x86_64-linux-gnu

Vì vậy, nếu ví dụ bạn đặt riêng của bạn libc.sovào /usr/local/libnó sẽ được tải thay vì mặc định libc.sotừ /lib/x86_64-linux-gnu.

Cách khắc phục:

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

2
Cảm ơn, tôi cũng gặp vấn đề này, vì tôi đã cố gắng phát triển một bản vá cho glib và thực thi sudo make install. sudo make uninstallđã giải quyết vấn đề bằng cách xóa các thư viện đó tại/usr/local/lib/
mxmlnkn

1
+1. Thực sự đã giải quyết một vấn đề tương tự xuất hiện sau khi cài đặt Glib2.
111

2
Linux Mint tiếp tục quay trở lại cài đặt mặc định và không tôn trọng bất kỳ thay đổi nào tôi đã thực hiện và kiểm tra lại dconf-editor. Hóa ra tôi đã xây dựng glib từ nguồn và sudo make installtôi không biết sẽ không cho phép tôi thay đổi nền hoặc đồng hồ, hoặc các cài đặt quế khác. Đã lái tôi hạt dẻ. Liên kết quay lại: forum.linuxmint.com/viewtopic.php?t=244360&start=20
RyanNerd

tôi nhận được lỗi này mv: không thể stat '/etc/ld.so.conf.d/libc.conf': Không có tệp hoặc thư mục như vậy và tôi không có bất kỳ thư viện nào trong / usr / loca / lib ngoại trừ môi trường python tôi có trên Anaconda. nhưng toàn bộ vấn đề bắt đầu khi tôi cài đặt một gói mới. và nó không xảy ra khi tôi chạy mã của mình trên jupyter-notebook thay vì IDE!
Amir

@Amir Đầu ra ldd có giống như trong mô tả vấn đề không? Có lẽ bạn có một vấn đề khác.
Dmitry

7

Đầu tiên kiểm tra nếu lệnh này trả về true:

gsettings writable com.canonical.Unity.Launcher favorites

Nếu không, hãy cài đặt phụ trợ với:

sudo apt-get install dconf-gsettings-backend 

Nếu điều này không giúp được gì, hãy đặt lại hồ sơ của bạn bằng:

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

Sau đó khởi động lại.


1
lệnh đầu tiên trả về 'true' (cùng với "sử dụng 'bộ nhớ' phụ trợ"). Về việc xóa cấu hình người dùng: Tôi đã cố gắng tạo một hồ sơ trống và vấn đề vẫn tồn tại ngay cả với tài khoản người dùng trống.
Dmitry

Bạn đã cài đặt dconf-gsinstall-backend chưa?
Frantique

Có, dconf-gsinstall-backend đã được cài đặt (và được cài đặt lại nhiều lần).
Dmitry

Bạn đã đề cập một sai. Trường hợp đó đã xảy ra?
Frantique

1
Cảm ơn câu trả lời của bạn. Tôi tìm thấy giải pháp (được đăng dưới dạng câu trả lời)
Dmitry

2

Chỉ muốn thêm trải nghiệm cá nhân của tôi vào điều này với Ubuntu 16.10. Tôi đã ngừng hoạt động sau khi sử dụng môi trường máy tính để bàn Gnome một thời gian, sau đó chuyển sang Unity để cho bạn bè thấy nó trông khó chịu như thế nào (IMO: D) và quay lại với Gnome. Sau đó tôi bắt đầu nhận được "... sử dụng phụ trợ bộ nhớ ...".

Đang làm

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

Đã sửa nó cho tôi.


1
Lưu ý rằng điều này sẽ xóa tất cả các cấu hình cho máy tính để bàn của bạn.
moorepants

1

Tôi đã trải nghiệm điều tương tự trong Debian Jessie. Nhưng giải pháp của người hỏi (anh ta đã thất bại với nó) là phù hợp với trường hợp của tôi:

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

Vấn đề này đã giết chết tôi, nhưng bạn đã cứu mạng tôi, Cảm ơn: D


0

Đảm bảo rằng bạn có mô-đun thực hiện việc lưu (libdconfsinstall.so trong / usr / lib / x86_64-linux-gnu / gio / mô-đun / hoặc / usr / lib / gio / mô-đun / hoặc bất cứ nơi nào bạn lưu trữ các mô-đun GIO của mình). Trên Ubuntu tập tin đó được cung cấp bởi gói dconf-gsinstall-backend; cài đặt lại mà người ta phải đủ ( sudo aptitude reinstall dconf-gsettings-backend).


0

Điều này làm việc cho tôi (và nó trông giống như vấn đề Python Anaconda do Dmitry nêu ra).

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

(Điều đó khiến tôi không thể thay đổi cài đặt gs - đặc biệt là cài đặt máy in cho Gedit.)

Nguồn:

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

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.