Git

在 Thunar / Kubuntu 20.04 上安裝 RabbitVCS

  • June 2, 2020

我正在嘗試通過 Thunar (1.8.14) 讓 RabbitVCS 在 Kubuntu (20.04) 上工作,但盡我所能,似乎沒有任何效果。 當然,根據他們的官方安裝說明,它不起作用。我覺得我已經非常接近了,但遇到了障礙,經過幾個小時的Google,我不知道如何繼續。這是我的過程。

首先,安裝 Thunar:

sudo apt install thunar

還有一些在 repo 中實際可用的 rabbitvcs 依賴項:

sudo apt install python-gobject python-dbus

接下來,我需要安裝 thunarx-python。它在 repo 中失去了,所以我安裝了從https://ubuntu.pkgs.org/19.10/ubuntu-universe-amd64/thunarx-python_0.5.1-2_amd64.deb.html下載的 thunarx-python_0.5.1-2_amd64.deb

同樣,repo 中缺少 python-configobj,所以我從https://ubuntu.pkgs.org/19.10/ubuntu-universe-amd64/python-configobj_5.0.6-3_all.deb.html安裝 deb

現在基本的兔子安裝:

git clone https://github.com/rabbitvcs/rabbitvcs
cd rabbitvcs
sudo python setup.py install --install-layout=deb
sudo mkdir -p /usr/share/thunarx-python/extensions
sudo cp clients/thunar/RabbitVCS.py /usr/share/thunarx-python/extensions

要查看發生了什麼,我將啟動 Thunar 並啟用 thunarx-python 調試:

THUNARX_PYTHON_DEBUG=all /usr/bin/thunar

結果:

thunar_extension_initialize: entered
thunarx_python_load_dir: entered dirname=/home/metal450/.local/share/thunarx-python/extensions
thunarx_python_load_dir: entered dirname=/usr/share/thunarx-python/extensions
thunarx_python_init_python: entered
thunarx-python: Setting GI_TYPELIB_PATH to /usr/lib/x86_64-linux-gnu/girepository-1.0
thunarx-python: g_module_open /usr/lib/x86_64-linux-gnu/libpython2.7.so.1.0
thunarx-python: Py_Initialize
thunarx-python: PySys_SetArgv
thunarx-python: Sanitize the python search path
thunarx-python: init_pygobject
thunarx-python: import Thunarx
Traceback (most recent call last):
File "<string>", line 1, in <module>
File "/usr/lib/python2.7/dist-packages/gi/__init__.py", line 129, in require_version
   raise ValueError('Namespace %s not available' % namespace)
ValueError: Namespace Thunarx not available
Traceback (most recent call last):
File "/usr/lib/python2.7/dist-packages/gi/importer.py", line 133, in load_module
   'introspection typelib not found' % namespace)
ImportError: cannot import name Thunarx, introspection typelib not found

(thunar:14773): thunarx-python-WARNING **: 11:50:40.747: thunarx_python_init_python failed
Traceback (most recent call last):
File "/usr/share/thunarx-python/extensions/RabbitVCS.py", line 41, in <module>
   from gi.repository import GObject, Gtk, Thunarx
File "/usr/lib/python2.7/dist-packages/gi/importer.py", line 133, in load_module
   'introspection typelib not found' % namespace)
ImportError: cannot import name Thunarx, introspection typelib not found
thunarx_python_load_dir: entered dirname=/usr/share/plasma/thunarx-python/extensions
thunarx_python_load_dir: entered dirname=/usr/local/share/thunarx-python/extensions
thunarx_python_load_dir: entered dirname=/usr/share/thunarx-python/extensions
thunarx_python_init_python: entered
Traceback (most recent call last):
File "/usr/share/thunarx-python/extensions/RabbitVCS.py", line 41, in <module>
   from gi.repository import GObject, Gtk, Thunarx
File "/usr/lib/python2.7/dist-packages/gi/importer.py", line 133, in load_module
   'introspection typelib not found' % namespace)
ImportError: cannot import name Thunarx, introspection typelib not found
thunarx_python_load_dir: entered dirname=/var/lib/snapd/desktop/thunarx-python/extensions
thunarx_python_load_dir: entered dirname=/usr/lib/x86_64-linux-gnu/thunarx-3/python
thunar_extension_list_types: entered

看起來它需要 GI_TYPELIB_PATH 中的 Thunarx 類型庫,即 /usr/lib/x86_64-linux-gnu/girepository-1.0。一些Google搜尋使它看起來應該是 Thunarx-3.0.typelib,該文件包含在 Thunar 本身中(即參見https://www.archlinux.org/packages/extra/x86_64/thunar/files/)。但事實並非如此。而且我的系統上的任何地方都沒有這樣的文件,儘管我可能會搜尋,但我無法弄清楚它應該來自哪裡。

任何幫助將不勝感激。到目前為止,我已經有 4 個多小時了,不幸的是,似乎仍然無法讓 Rabbit 工作。

正如 RabbitVCS 的開發人員在此處討論的那樣:https ://github.com/rabbitvcs/rabbitvcs/issues/297 ,看起來 RabbitVCS 中存在多個錯誤,並且其安裝說明中存在多個不准確之處。

為了直接回答我上面的問題,我可以通過從https://download-ib01.fedoraproject.org/pub/epel/8/Everything/x86_64/Packages/t/Thunar-1.8下載 rpm 來獲取缺少的類型庫.11-1.el8.x86_64.rpm,手動提取失去的類型庫,並手動將其移動到 /usr/lib/x86_64-linux-gnu/girepository-1.0。然而,當我了解到 Thunar 實際上並不支持 RabbitVCS 的覆蓋圖示時,我最終選擇了 Nautilus。為了讓它在 Kubuntu 中工作,我安裝了這樣的:

sudo apt install nautilus python-dbus python3-nautilus python3-configobj python3-svn
git clone https://github.com/rabbitvcs/rabbitvcs
cd rabbitvcs
sudo python3 setup.py install --install-layout=deb
sudo cp clients/nautilus/RabbitVCS.py /usr/share/nautilus-python/extensions
nautilus -q

注意:他們的說明建議從 PPA 安裝;忽略它並從原始碼安裝,因為 PPA 版本顯然不起作用。他們的說明還列出了不存在的包 nautilus-python(您必須更改為 python3-nautilus)、python-configobj -> python3-configobj、python-svn -> python3-svn、dulwich -> python3-德威,python-gtk2 -> python3-tk。

這樣就可以安裝了。此時,它仍然無法正常工作,並顯示錯誤消息:

TypeError: Don't know which D-Bus type to use to encode type "NoneType"

我通過編輯 /usr/lib/python3/dist-packages/rabbitvcs/services/checkerservice.py 並註釋掉第 270 行locale.getlocale(locale.LC_MESSAGES)以及 /usr/lib/python3/dist-packages/rabbitvcs/vcs/git/ 來修復它。 init.py 第 824 行。修復的說明在上面的 github 連結中,但如果您沒有弄亂系統區域設置,它應該可以正常工作。

我相信他們已經做出了自己的修復(所以你可能不需要最後一步),但這就是它為我工作的原因,在花了一天的大部分時間在這之後,我只是堅持我的有。

這留下了唯一剩下的壞事:彈出菜單中的圖示不見了。其他一切似乎都可以工作:覆蓋圖示、菜單操作、對話框等 - 意思是,它在功能上已啟動並正在執行。

引用自:https://unix.stackexchange.com/questions/588390