`
haiouc
  • 浏览: 118411 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

merucrial-server install in linux

    博客分类:
  • SCM
阅读更多
Mercurial是一个分布式的的版本控制工具。其自身提供了一个web服务端,但是没有权限控制功能。Mercurial-server可以弥补这个不足,它通过ssh来控制不同版本库的访问权限。需要注意的是Mercurial-server只能安装在linux系统上

Ubuntu系统下的安装:
如果使用的是Ubuntu操作系统的话安装是非常简单的,只需要执行下面的命令:
Java代码 复制代码 收藏代码
  1. $ sudo apt-get update   
  2. $ sudo apt-get install mercurial mercurial-server  
$ sudo apt-get update
$ sudo apt-get install mercurial mercurial-server


Redhat系统下的安装:
这个相对来说会复杂一些,而且失败率非常高,按照官方文档的方法连第一步都无法通过。后来经过一番漫长的摸索终于安装成功了。这里和大家分享一下:
1、看到解压后的目录中含有Makefile,直接执行make,结果报错,无法成功安装;
2、分析Makefile中的内容,发现整个安装过程包含复制文件、创建用户、初始化用户等几个任务。接下来开始手工安装:
Java代码 复制代码 收藏代码
  1. a.首先通过make命令进行文件复制:make pythonbuild pythoninstall   
  2. b.通过make执行创建用户任务会报错,所以直接使用系统命令创建:useradd hg   
  3. c.再通过make的inituser对用户进行初始化:make inituser  
a.首先通过make命令进行文件复制:make pythonbuild pythoninstall
b.通过make执行创建用户任务会报错,所以直接使用系统命令创建:useradd hg
c.再通过make的inituser对用户进行初始化:make inituser
===> python install setup.py 记得老的版本,先安装python,再用此命令安装mercurial-server

Mercurial-server安装成功后需要进行一定的配置:
1、切换到hg用户下;
2、创建权限控制的基本文件/etc/mercurial-server/access.conf,并输入以下内容
Java代码 复制代码 收藏代码
  1. init user=root/**   
  2. deny repo=hgadmin   
  3. write user=users/**  
init user=root/**
deny repo=hgadmin
write user=users/**

3、将自己的ssh公钥复制到版本库服务器的/etc/mercurial-server/keys/root/user-name/目录中
4、创建~/.ssh目录
5、执行/usr/local/share/mercurial-server/refresh-auth进行权限刷新
6、将~/.ssh目录的权限设置为只读


特别需要注意的一点是:
mercurial-1.9.1与mercurial-server有兼容问题,===> 在项目应用的项目软件经常遇到hg的版本匹配,不合适的需要换一换,也许就解决了。即会报这样一个错误:
Python代码 复制代码 收藏代码
  1. remote: Traceback (most recent call last):   
  2. remote:   File "/usr/local/share/mercurial-server/hg-ssh", line 76in <module>   
  3. remote:     dispatch.dispatch(['-R', repo, 'serve''--stdio'])   
  4. remote:   File "/usr/local/lib/python2.7/site-packages/mercurial/dispatch.py", line 31in dispatch   
  5. remote:     if req.ferr:   
  6. remote: AttributeError: 'list' object has no attribute 'ferr'  
  7. abort: no suitable response from remote hg!  
remote: Traceback (most recent call last):
remote:   File "/usr/local/share/mercurial-server/hg-ssh", line 76, in <module>
remote:     dispatch.dispatch(['-R', repo, 'serve', '--stdio'])
remote:   File "/usr/local/lib/python2.7/site-packages/mercurial/dispatch.py", line 31, in dispatch
remote:     if req.ferr:
remote: AttributeError: 'list' object has no attribute 'ferr'
abort: no suitable response from remote hg!

如果出现这个错误,换用1.8.4版本便可以解决。


此外,我在安装mercurial-1.9.1的时候报了一个错误:docutils module is missing。这时需要安装一下这个模块,安装方法如下:
Java代码 复制代码 收藏代码
  1. # wget http://prdownloads.sourceforge.net/docutils/docutils-0.7.tar.gz?download   
  2. # tar -zxf docutils-0.7.tar.gz   
  3. # cd docutils-0.7  
  4. # python setup.py install  
# wget http://prdownloads.sourceforge.net/docutils/docutils-0.7.tar.gz?download
# tar -zxf docutils-0.7.tar.gz
# cd docutils-0.7
# python setup.py install
分享到:
评论

相关推荐

    VNC-Server-6.7.1-Linux-x64-ANY.tar.gz

    在本场景中,"VNC-Server-6.7.1-Linux-x64-ANY.tar.gz" 是一个针对64位Linux系统的VNC服务器软件的压缩包。VNC Server是RealVNC公司提供的产品,它提供了跨平台的远程控制功能,让用户可以在不同的操作系统上远程...

    apktool-install-linux-r05-ibot

    apktool-install-linux-r05-ibot.tar.bz2 直接解压 需要搭配 apktool1.5.2.tar.bz2 一起使用 配置环境变量即可使用

    datart-server-1.0.0-alpha.2-install.zip

    datart安装包

    MySQL-server-5.5.48-1.linux2.6.i386.rar

    如果缺少依赖,可以通过`yum install &lt;dependency&gt;`或`apt-get install &lt;dependency&gt;`(取决于你的Linux发行版)来安装。 2. **安装RPM包**:在确保依赖关系得到满足后,可以使用`rpm`命令安装MySQL服务器。对于这...

    ti-sdk-am335x-evm-06.00.00.00-Linux-x86-Install.zip

    ti-sdk-am335x-evm-06.00.00.00-Linux-x86-Install.zip

    【所有版本】openocd-esp32-linux64-0.10.0-esp32-xxxxxxxx

    使用方法:解压 openocd-esp32-linux64-0.10.0-esp32-xxxxxxxx.zip ,根据时间版本选择一个 .tar.gz 的文件,放入linux下 ~/.espressif/dist 文件夹,再执行 ./install.sh 就跳过这一个下载了。

    Apache-OpenOffice-4.1.1-Linux-x86-64-install-rpm-en-US.tar

    标题中的“Apache-OpenOffice-4.1.1-Linux-x86-64-install-rpm-en-US.tar”指的是Apache OpenOffice的4.1.1版本的安装包,专为64位Linux操作系统设计,采用RPM(Red Hat Package Manager)格式,并且是英文版。...

    Auto-install-java-for-linux,linux自动安装java及部署环境变量_Auto-install

    Auto-install-java-for-linux,linux自动安装java及部署环境变量_Auto-install-java-for-linux

    Ubuntu下openssh-server手工安装 手把手教你安装

    在无网络环境下手动安装OpenSSH-server是一项相对复杂的任务,需要对Linux系统有一定的了解。但通过这种方式,你可以更好地控制安装过程,确保所有步骤都符合安全和管理的需求。在实际操作中,务必遵循最佳实践,...

    telnet-server-0.17-64.el7.x86_64.rpm

    标题中的"telnet-server-0.17-64.el7.x86_64.rpm"是一个RPM软件包,用于在Linux系统上安装Telnet服务器。RPM(Red Hat Package Manager)是Linux发行版中广泛使用的软件包管理器,用于安装、升级、查询和删除软件。...

    Mycat-server-1.6

    文件"Mycat-server-1.6-RELEASE-20161028204710-linux.tar.gz"就是这样的一个压缩包,它提供了Mycat的Linux版本,便于在Linux环境中解压安装。 以下是安装和配置Mycat在Linux上的详细步骤: 1. **下载与解压**:...

    rabbitmq-server-3.6.5-1.noarch.rar

    在“压缩包子文件的文件名称列表”中,我们看到一个名为“rabbitmq-server-3.6.5-1.noarch.rpm”的文件,这是一个RPM(Red Hat Package Manager)格式的软件包,常见于Fedora、CentOS等基于RPM的Linux发行版。...

    redhat6.5上的tigervnc tigervnc-server rpm安装包

    sudo yum install xorg-x11-server-Xvfb ``` 3. **下载RPM包**:获取"Tigervnc tigervnc-server rpm安装包",这通常可以通过访问TigerVNC官方网站或者从RHEL的软件仓库中下载。下载后,将其放在可访问的位置,...

    jre-8u202-linux-x64.tar.gz

    jre-8u202-linux-x64.tar.gz适用于Linux x64位系统,是在Binary Code License (“BCL”)许可协议下提供最后的免费商业版本,允许用在生产环境中; 对于 2019 年 4 月 16 日开始的版本,Oracle JDK 许可协议已更改,...

    rabbitmq-server-3.6.5-1.noarch.zip

    描述中提到的“rabbitmq-server-3.6.5-1.noarch.rpm”是RabbitMQ服务器的安装包,专为Linux环境设计,特别是CentOS 7操作系统。在Linux中,RPM包提供了一种方便的方式来安装、升级和管理软件,包括依赖关系解决。 ...

    mssql-server-15.0.4073.23-4.x86_64.rpm

    mssql-server-15.0.4073.23-4.x86_64.rpm 为Linux系统下离线安装包,安装方式:rpm -ivh mssql-server-15.0.4073.23-4.x86_64.rpm 提示缺依赖包,则把包补全 yum install bzip2

    termux-install-linux-kali linux安装教程

    termux-linux kali linux安装教程 kali linux安装教程 kali linux安装教程 kali linux安装教程 kali linux安装教程

    install.rar

    apt-get install -y openssh-server apt-get install -y git apt-get install -y vim apt-get install -y tftp-hpa apt-get install -y nfs-kernel-server apt-get install -y samba apt-get install -y samba...

    perl-Module-Install-1.06-4.el7.noarch.rpm

    官方离线安装包,亲测可用。使用rpm -ivh [rpm完整包名] 进行安装

Global site tag (gtag.js) - Google Analytics