git extensions linux,GitExtensions 在 Ubuntu 下的配置
最近一直在架设内网的GitLab,和成套的适用工具.(之前架GitLab的总结)对于ubuntu平台下使用的GUI,一直没有找到什么特别满意的(某个乌贼强制要求登录帐号,SourceTree是Mac上的东西…),之后决定采用 GitExtensions 作为 Windows/Ubuntu 平台下统一的 Git GUI(利用mono来在*nix下跑).
在初步尝试后发现是可行的,不过对于中文的支持并不是太好,之后查阅了许多资料,解决了这个问题.主要有以下几个需要注意的地方:
1.Mono本身的中文支持.环境变量LANG决定着Mono将外部读入的文件视为什么编码,如果没有设置妥当,GitExtensions的多语言支持无法正常工作.需要更改gitext.sh为:
Shell
#!/bin/bash
LANG=zh_CN.UTF-8
LANGUAGE=zh_CN:zh
export LANG
export LANGUAGE
mono GitExtensions.exe "\$@" &
1
2
3
4
5
6
#!/bin/bash
LANG=zh_CN.UTF-8
LANGUAGE=zh_CN:zh
exportLANG
exportLANGUAGE
monoGitExtensions.exe"\$@"&
2.字体的中文支持.在设置好环境变量之后,虽然提交信息,界面等位置的中文都可以正常显示了,不过在Diff结果,文件预览界面依然是乱码.
这里的原因是下面的文本显示界面,需要一个等宽字体来显示,而Ubuntu自带的中文显示字体,是不等宽的.
于是需要手动安装一个等宽的字体,来供代码显示使用.这里个人当时选择的是Microsoft YaHei Mono 字体,可供参考.
对于中文显示主要是上面两个坑,不过在配置过程中,也遇到了许多其他的问题,也在此记录一下:
1.配置好本地源后,最好 rm -r /var/lib/apt/lists/* 以避免受到之前的list缓存影响.
2.mono-complete 同时也依赖于 ubuntu main 里面的包,所以要镜像个ubuntu的源才能完全本地化
3.GitExtensions 所推荐的diff工具 kdiff3 在 universe 包里面
4.加 Desktop Entry 别忘了设置Path(工作目录)
5.ubuntu 源里面的mono,git版本都太低,需要用 ppa 和 mono-offical 的源
已知的问题:
(*有时间的话在源码里找找原因吧…x)
为了自动配置GitExtensions的环境,我是写了一个配置脚本…也在这里分享一下喽(轻喷)
Shell
#! /bin/sh
echo "deb http://data.SourceManage.moe/mono trusty main" | sudo tee /etc/apt/sources.list.d/mono-official.list
echo "deb http://data.SourceManage.moe/git trusty main" | sudo tee /etc/apt/sources.list.d/git-core-ppa-trusty.list
echo "deb http://data.SourceManage.moe/ubuntu2 trusty main restricted universe multiverse" | sudo tee /etc/apt/sources.list.d/Infko-local.list
sudo rm -r /var/lib/apt/lists/*
sudo apt-get update
#本地源的配置
sudo apt-get --force-yes install mono-complete
sudo apt-get --force-yes install git
sudo apt-get --force-yes install kdiff3
#安装必要的依赖
unzip GitExtensions-2.50.00-Mono.zip
#解压 GitExtensions
sudo mkdir /usr/share/fonts/YaHei
sudo cp YaHeiMono.ttf /usr/share/fonts/YaHei/YaHeiMono.ttf
CURRENT_PATH=$(pwd);
cd /usr/share/fonts/YaHei
sudo mkfontscale
sudo mkfontdir
sudo fc-cache -fv
cd ${CURRENT_PATH}
#安装字体
cd GitExtensions
sudo chmod a+x gitext.sh
CURRENT_PATH=$(pwd);
cat << EOF > tmp.txt
[Desktop Entry]
Version=1.0
Name=GitExtensions
Exec=${CURRENT_PATH}/gitext.sh
Path=${CURRENT_PATH}
Terminal=false
Icon=${CURRENT_PATH}/git-extensions-logo-final-256.ico
Type=Application
Categories=Development
EOF
sudo cp tmp.txt /usr/share/applications/GitExtensions.desktop
sudo chmod 477 /usr/share/applications/GitExtensions.desktop
rm tmp.txt
#创建快速启动
sudo rm gitext.sh
cat << EOF > gitext.sh
#!/bin/bash
LANG=zh_CN.UTF-8
LANGUAGE=zh_CN:zh
export LANG
export LANGUAGE
mono GitExtensions.exe "\$@" &
EOF
sudo chmod a+x gitext.sh
#设置启动时的环境变量
cp ./../GitExtensions.exe.config ./GitExtensions.exe.config
#将IsPortable设为True,使GitExtensions读取程序目录下的settings文件
cp ./../GitExtensions.settings ./GitExtensions.settings
#已经设置好使用的自己为Microsoft YaHei的settings文件
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
#! /bin/sh
echo"deb http://data.SourceManage.moe/mono trusty main"|sudotee/etc/apt/sources.list.d/mono-official.list
echo"deb http://data.SourceManage.moe/git trusty main"|sudotee/etc/apt/sources.list.d/git-core-ppa-trusty.list
echo"deb http://data.SourceManage.moe/ubuntu2 trusty main restricted universe multiverse"|sudotee/etc/apt/sources.list.d/Infko-local.list
sudorm-r/var/lib/apt/lists/*
sudoapt-getupdate
#本地源的配置
sudoapt-get--force-yesinstallmono-complete
sudoapt-get--force-yesinstallgit
sudoapt-get--force-yesinstallkdiff3
#安装必要的依赖
unzipGitExtensions-2.50.00-Mono.zip
#解压 GitExtensions
sudomkdir/usr/share/fonts/YaHei
sudocpYaHeiMono.ttf/usr/share/fonts/YaHei/YaHeiMono.ttf
CURRENT_PATH=$(pwd);
cd/usr/share/fonts/YaHei
sudomkfontscale
sudomkfontdir
sudofc-cache-fv
cd${CURRENT_PATH}
#安装字体
cdGitExtensions
sudochmoda+xgitext.sh
CURRENT_PATH=$(pwd);
cat<tmp.txt
[DesktopEntry]
Version=1.0
Name=GitExtensions
Exec=${CURRENT_PATH}/gitext.sh
Path=${CURRENT_PATH}
Terminal=false
Icon=${CURRENT_PATH}/git-extensions-logo-final-256.ico
Type=Application
Categories=Development
EOF
sudocptmp.txt/usr/share/applications/GitExtensions.desktop
sudochmod477/usr/share/applications/GitExtensions.desktop
rmtmp.txt
#创建快速启动
sudormgitext.sh
cat<gitext.sh
#!/bin/bash
LANG=zh_CN.UTF-8
LANGUAGE=zh_CN:zh
exportLANG
exportLANGUAGE
monoGitExtensions.exe"\$@"&
EOF
sudochmoda+xgitext.sh
#设置启动时的环境变量
cp./../GitExtensions.exe.config./GitExtensions.exe.config
#将IsPortable设为True,使GitExtensions读取程序目录下的settings文件
cp./../GitExtensions.settings./GitExtensions.settings
#已经设置好使用的自己为Microsoft YaHei的settings文件
(*这里不知道为什么…apt-get的force-yes好像没用…?)
PS:f7(eiki)喜欢!!!!
PS2:最后是因为想到”如果是编码问题,一个中文字应该对应两个方框的”,才把注意力转移到字体的….
PS3:单纯经验的积累….
PS4:之后迁移到腾讯云还是sakura呢…感觉自己的网站被墙的挺严重的T T
git extensions linux,GitExtensions 在 Ubuntu 下的配置相关推荐
- linux 编译 suitesparse,Ubuntu下编译SuiteSparse-4.4.1和METIS-4.0.3
ubuntu下编译caffe Ubuntu下编译caffe 纯粹是个人编译的记录.不用CUDA(笔记本是amd卡,万恶的nvidia):不手动编译依赖包(apt-get是用来干啥的?用来直接装二进制包 ...
- openni linux arm,Ubuntu下安装配置OpenNI实战笔记
1. 库OpenNI SensorKinect NITE的安装 (1)OpenNI step1 :下载 OpenNI库文件 选择"OpenNI Binaries"->&quo ...
- wireshark使用教程 linux,Linux入门教程:ubuntu下安装wireshark(以及配置非root),这个强大的工具可以捕...
Linux入门教程:ubuntu下安装wireshark(以及配置非root),这个强大的工具可以捕 Wireshark是世界上最流行的网络分析工具.这个强大的工具可以捕捉网络中的数据,并为用户提供关 ...
- linux 自动降频,Linux资格认证:Ubuntu下对CPU进行降频
这两天CPU温度超高,为了解决这个问题,先是找了两块以前台式机上的风扇(一个CPU,一个机箱风扇),和一条USB延长线.接好以后运行了一段时间,发现效果很不明显,大概降了有1度吧,还不知道是不是因为自 ...
- Linux(CentOS、Ubuntu)下,磁盘分区、挂载
文章目录 Linux(CentOS.Ubuntu)下,磁盘分区.挂载 分区的方式: Linux分区 [lsblk] [fdisk] [mkfs] [mount] [umount] [/etc/fsta ...
- linux系统(ubuntu)下安装exe文件
linux系统(ubuntu)下安装exe文件 昨天将家中的旧笔记本翻出来安装了ubuntu20.04.1,想在电脑中安装exe文件时,不能直接打开. 于是借鉴网络中的方法(https://blog. ...
- Ubuntu下安装配置Open×××
Ubuntu下安装配置Open××× 时间:2009-02-11 21:03来源:http://www.kklinux.com 作者:看看Linux 点击:2664次 1. 安装 Ubuntu中安装O ...
- linux nginx 配置端口访问,Linux入门教程:ubuntu 16.04配置nginx服务器实现一个IP一个端口多个站点,ubuntunginxNginx 使用异步...
Linux入门教程:ubuntu 16.04配置nginx服务器实现一个IP一个端口多个站点,ubuntunginxNginx 使用异步 特点: Nginx 可以部署在网络上使用 FastCGI,脚本 ...
- ubuntu下nginx配置
ubuntu下nginx配置 文章目录 ubuntu下nginx配置 初步分析 查看nginx.service 找到服务文件 查看服务文件 查看配置文件的加载路径 配置文件分析 全局指令块 http指 ...
最新文章
- details和summary
- Siege 3.0 Beta2 发布,压力测试工具
- Java 学习(21)--集合笔试题
- 蓝牙HCI剖析(二)
- android sdk v28,Android Studio Gradle Build失败 – 要求提供不存在的sdk版本
- 专科 java转go 翱翔之路(一)基础语法:变量声明,匿名函数,结构体,函数,map
- 一个DataTable赋值给另一个
- ubuntu创建wifi热点plasma-nm
- http://blog.csdn.net/myan/article/details/1906
- ubuntu下ffmpeg编译安装
- 在CDH sandbox中安装并测试livy
- 浅谈C#值类型和引用类型
- 产品经理该如何做竞品分析
- c#生成随机彩色验证码例子
- Qt学习视频资料汇总
- CAD二次开发(VB)代码整理
- am大学计算机科学,美国大学本科计算机科学专业排名一览
- SQL文件太大怎么打开(推荐一款工具EmEditor)
- Python|如何正确安装PaddleOCR
- ITMS-SERVICES://方式安装IPA在IOS 7.1中的变化
热门文章
- 人工智障与深度学渣之问题集锦:ValueError: Shape must be rank 4 but is rank 1 for 'Conv2D' with input shapes。。。
- 从零开始的ZYNQ学习(基于矿卡EBAZ4205)(四)
- 山东工商学院 计算机 银行,山东工商学院与中国工商银行成为战略合作伙伴
- (实验55)单片机,STM32F4学习笔记,代码讲解【网络通信实验】【正点原子】【原创】
- Web点播播放器1.0——腾讯sdk网页点播播放器
- OpenCV进行视频拼接
- python利用itchat接口和pyecharts包进行数据可视化
- SCU - 4438 Censor (KMP)
- php 数据库编码,如何在php和mysql数据库中正确编码字符
- Win 11环境下 Texlive中文字体缺失问题(Package fontspec Error: The font )