我想在没有root
访问权限的Linux系统上安装Mercurial。
如何以某种方式执行此操作,以便我可以轻松地再次卸载Mercurial并在新版本发布时升级它?
另外,我是否可以获得一个不需要管理员权限才能安装Windows的软件包?
答案 0 :(得分:7)
在您的主目录中编译和安装Mercurial非常容易,我自己也这样做了。
如果您有疑问,这个链接的wiki-post肯定会提供一些帮助;
使用make install-home
将hg
安装到您的主目录,它会将二进制文件放在〜/ bin和〜/ lib中的关联文件中。
卸载或升级到新版本时,您可以删除makefile放入的文件,或让make install-home
(如果升级)覆盖现有文件。
确保在安装后更新$PATH
,使其包含~/bin
。
按照以下链接将引导您进入Mercurial的下载部分。在那里,您将能够找到不需要管理权限的Windows安装包。
答案 1 :(得分:2)
Mercurial source comes Makefile
,其目标为local
。如果你运行它,那么你将就地构建C扩展:
$ make local
... (lots of output) ...
python hg version
Mercurial Distributed SCM (version 5b66e55c0d93+20111216)
(see https://www.mercurial-scm.org for more information)
Copyright (C) 2005-2011 Matt Mackall and others
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
您将需要Python头文件,它们通常位于python-dev
包中。然后,您可以将hg
脚本符号链接到PATH
中的目录中。我使用~/bin
:
$ cd ~/bin
$ ln -s ../src/mercurial/hg
您现在可以从任何目录运行hg
。
如果要卸载Mercurial,它就像删除编译目录一样简单。升级也很简单:在目录中解压缩新版本并再次运行make local
。您还可以使用新安装的Mercurial来克隆Mercurial存储库本身:
$ hg clone https://www.mercurial-scm.org/repo/hg
$ cd hg
$ make local
这为您提供了default
分支中的Mercurial版本。如果您想要从hg update stable
分支进行构建,请在编译之前使用stable
。该分支仅使用错误修正更新。
在该平台上,您可以使用Inno setup installers。他们不需要管理员权限。如果您愿意,可以将其与portable version of TortoiseHg结合使用。
答案 2 :(得分:2)
我知道这个问题已经得到解答,但有人可能处于我的状态,那就是必须在没有C编译器的情况下安装并制作。
可以在以下link找到解决方案的完整说明。
命令列表,不使用make
wget http://pypi.python.org/packages/2.5/s/setuptools/setuptools-0.6c11-py2.5.egg
mkdir -p ~/software/lib/python2.5/site-packages
export PYTHONPATH=~/software/lib/python2.5/site-packages
sh setuptools-0.6c11-py2.5.egg --prefix=~/software
export PATH=${PATH}:~/software/bin
easy_install --prefix=~/software docutils
cd ~/software
wget https://www.mercurial-scm.org/release/mercurial-2.5.2.tar.gz
tar xzvf mercurial-2.5.2.tar.gz
cd mercurial-2.5.2.tar.gz
python setup.py --pure install --home="~/software" --force
cd ~/software/lib/python
mv hgext/ ../python2.5/site-packages/
mv mercurial ../python2.5/site-packages/
mv mercurial-2.5.2.egg-info ../python2.5/site-packages/
将以下行附加到.bashrc
:
export PYTHONPATH=~/software/lib/python2.5/site-packages
export PATH=${PATH}:~/software/bin
检查:
~$ hg
Mercurial Distributed SCM
etc...