我正在尝试安装烏龜HG和:
$ sudo dpkg -i tortoisehg_4.8.1-0.1_all.deb
Selecting previously unselected package tortoisehg.
(Reading database ... 172882 files and directories currently installed.)
Preparing to unpack tortoisehg_4.8.1-0.1_all.deb ...
Unpacking tortoisehg (4.8.1-0.1) ...
dpkg: dependency problems prevent configuration of tortoisehg:
tortoisehg depends on mercurial (<< 4.9~); however:
Version of mercurial on system is 5.3.2-1+exp1.
tortoisehg depends on python-pyqt5; however:
Package python-pyqt5 is not installed.
tortoisehg depends on python-pyqt5.qsci; however:
Package python-pyqt5.qsci is not installed.
tortoisehg depends on python:any (<< 2.8); however:
tortoisehg depends on python:any (>= 2.7~); however:
dpkg: error processing package tortoisehg (--install):
dependency problems - leaving unconfigured
Processing triggers for gnome-menus (3.36.0-1ubuntu1) ...
Processing triggers for desktop-file-utils (0.24-1ubuntu2) ...
Processing triggers for mime-support (3.64ubuntu1) ...
Processing triggers for hicolor-icon-theme (0.17-2) ...
Processing triggers for man-db (2.9.1-1) ...
Errors were encountered while processing:
tortoisehg
我该如何解决这些错误?
答案1
更新:我现在确实有一个可用的包。它可以在 github 上找到:
https://github.com/glaure/tortoisehg4ubuntu
请提供反馈!
旧:我没有可用的软件包或 snap。但使用这些说明,tortoisehg
从源代码开始工作相当容易。
检查是否
python --version
返回 Python 3 解释器。如果没有,则必须将符号链接更改/usr/bin/python
为/usr/bin/python3
。好的:
$ python --version Python 3.8.2
不好:
$ python --version Python 2.7.18rc1
更改符号链接:
$ sudo rm /usr/bin/python $ sudo ln -s /usr/bin/python3 /usr/bin/python
pip3
需要满足所有构建依赖关系。sudo apt install python3-pip build-essential
克隆 tortoisehg 存储库。
hg clone https://foss.heptapod.net/mercurial/tortoisehg/thg
更改到
thg
目录。cd thg
安装 PyQt5。
pip3 install pyqt5
安装
mercurial
。pip3 install mercurial
安装
Qscintilla
。pip3 install qscintilla sudo apt install pyqt5.qsci-dev
让我们构建
tortoisehg
以供就地使用。make local
开始
tortoisehg
。./thg
我tortoisehg
使用此配方在三个不同的 Ubuntu 20.04 安装上工作。
更新: https://github.com/glaure/tortoisehg4ubuntu
包含用于自动执行上述任务的脚本。
答案2
当我尝试做流程时Gunter 建议出了点问题,我收到一个错误:
No module named 'PyQt5.Qsci'
之前这里建议的安装选项均不起作用。
我设法通过运行来消除它
sudo apt-get install python3-pyqt5.qsci
答案3
对于那些在 Windows Subsystem for Linux 2 上运行 Ubuntu 20.04 的用户。假设你在 Windows 上安装并启动了一个 X 服务器(例如代理服务器),在 Ubuntu 上执行以下操作:
- 配置
DISPLAY
环境变量~/.bashrc
IP=$(grep -m 1 nameserver /etc/resolv.conf | awk '{print $2}')
export DISPLAY=$IP:0.0
- 编译 TortoiseHg
sudo apt install mercurial python3-pip build-essential pyqt5.qsci-dev
sudo ln -s /usr/bin/python3 /usr/bin/python
sudo ln -s /usr/bin/pip3 /usr/bin/pip
pip install pyqt5 mercurial qscintilla iniparse
sudo apt install libxcb-icccm4 libxcb-image0 libxcb-keysyms1 libxcb-render-util0 libxcb-xinerama0 libxcb-xkb1 libxkbcommon-x11-0
hg clone https://foss.heptapod.net/mercurial/tortoisehg/thg
cd thg
make local
您可能需要安装WSL Windows 工具栏启动器从 Windows 启动 TortoiseHg。在本例中,创建文件/usr/share/applications/tortoisehg.desktop
[Desktop Entry]
Name=TortoiseHg
Exec=/path/to/thg_repo/thg
Type=Application
Terminal=false
Categories=GNOME;GTK;Mercurial;Development
Icon=/path/to/thg_repo/icons/thg_logo.ico
答案4
我决定在虚拟环境中使用 tortoisehg 完成所有操作。因此,这里有一个指南,以及桌面文件。这很大程度上基于先前的答案,其中包含了来自该问题的其他答案的一些片段。
首先使用 apt 安装所需的软件包:
sudo apt install python3-pip python3-venv build-essential pyqt5.qsci-dev
然后创建你的虚拟环境并开始使用它:
python3 -m venv ~/.venv/thg
source ~/.venv/thg/bin/activate
(您可以在任何地方创建虚拟环境。)
将包安装到虚拟环境中:
pip install pyqt5 mercurial==5.4 qscintilla iniparse
注意,我将 mercurial 固定在 5.4,因为在撰写本文时,tortoisehg 不适用于 5.5
然后我们可以克隆 thg 存储库并构建它:
hg clone https://foss.heptapod.net/mercurial/tortoisehg/thg
cd thg
make local
这时我们可以直接运行
./thg
或者我们可以从任何地方运行它,而无需激活虚拟环境,只需使用虚拟环境中的 python 即可。您可以在命令行中输入以下内容,也可以将其放入 shell 脚本中,例如~/bin/
$HOME/.venv/thg/bin/python path/to/thg/thg
如果您想将其作为桌面应用程序启动,您可以将以下内容放在文件中~/.local/share/applications/tortoisehg.desktop
(仅供您的用户使用)或/usr/share/applications/tortoisehg.desktop
(供系统的所有用户使用)。
[Desktop Entry]
Name=TortoiseHg
Exec=/home/youruser/.venv/thg/bin/python /home/youruser/path/to/thg/thg
Type=Application
Terminal=false
Categories=GNOME;GTK;Mercurial;Development
Icon=/home/youruser/path/to/thg/icons/thg_logo.ico
显然,更新和行上的路径Exec=
以Icon=
匹配您的实际路径。