Ubuntu20.04中安装tortoisehg的方法

Ubuntu20.04中安装tortoisehg的方法

我正在尝试安装烏龜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从源代码开始工作相当容易。

  1. 检查是否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
    
  2. pip3需要满足所有构建依赖关系。

    sudo apt install python3-pip build-essential
    
  3. 克隆 tortoisehg 存储库。

    hg clone https://foss.heptapod.net/mercurial/tortoisehg/thg
    
  4. 更改到thg目录。

    cd thg
    
  5. 安装 PyQt5。

    pip3 install pyqt5
    
  6. 安装mercurial

    pip3 install mercurial
    
  7. 安装Qscintilla

    pip3 install qscintilla
    sudo apt install pyqt5.qsci-dev
    
  8. 让我们构建tortoisehg以供就地使用。

    make local
    
  9. 开始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 上执行以下操作:

  1. 配置DISPLAY环境变量~/.bashrc
IP=$(grep -m 1 nameserver /etc/resolv.conf | awk '{print $2}') 
export DISPLAY=$IP:0.0 
  1. 编译 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=匹配您的实际路径。

相关内容