比較的最近、私は問題に遭遇しました。共有ホスティングでサイトが開発されており、ニュースなどのコンテンツ用の通常のサイトに十分なテクノロジーセットがありました。 重要な問題の1つは、バージョン管理システムの欠如でした。 従来の方法では確立できませんでした。 この問題の解決策の検索が開始されました。
タスクが完了し、その解決方法をステップごとに説明します。
1.共有ホスティングへのアクセスは、sshを介して行う必要があります。 ホスティングに接続します。
$ ssh user@host
2.ホームディレクトリに移動します。 彼女に関するすべてのアクションが実行されます。
$ cd ~
2.共有ホスティングにpythonがインストールされていることを確認します。
$ python --version Python 2.6.6 $
4. pythonディレクトリを作成して、mercurialが機能するために必要なモジュールをそこに配置しますが、共有ホスティングにはありません。
$ mkdir -p python
5. Mercurialのソースコードをダウンロードします。
www.mercurial-scm.org/release
$ wget https://www.mercurial-scm.org/release/mercurial-3.7.tar.gz
6.アーカイブの内容を現在のディレクトリに抽出します。
$ tar xvf mercurial-3.7.tar.gz
7.フォルダーの名前をmercurialに変更します。
$ mv mercurial-3.7 mercurial -v
8. mercurialフォルダーに移動します。
$ cd mercurial
9.ソースコードからmercurialをインストールします。
$ python setup.py --pure build_py -c -d . build_ext -i build_mo --force
10.ソースコードからのインストールは非標準と見なされるため、モジュールをインストールするには以下を実行する必要があります。
$ python setup.py --pure install --prefix ../../python --force
11.インストールが正しい場合、ディレクトリ〜/ python / lib {type} / python {version} / site-packages /に次のファイルのリストがあります。
$ ls -l ~/python/lib64/python3.7/site-packages/ total 12 drwxr-xr-x 5 user group 4096 Oct 2 2014 hgext drwxr-xr-x 6 user group 4096 Oct 2 2014 mercurial -rw-r--r-- 1 user group 238 Oct 2 2014 mercurial-3.7-py3.7.egg-info $
〜/ python / bin /ディレクトリには、コンパイルされたhgが含まれます。
$ ls ~/python/bin/ -l total 4 -rwxr-xr-x 1 user group 770 Oct 1 2014 hg $
12.存在しない場合は、.profileまたは.bash_profileファイルを作成します(共有ホスティング設定によって異なります)。
$ touch ~/.profile
13.以下がファイルに書き込まれます。
export PATH=~/python/bin:$PATH export PYTHONPATH=~/python/lib64/python3.7/site-packages
最初の行は、Mercurialを含むフォルダーへのパスをPATH環境変数に追加します。 2行目は、Pythonモジュールへのパスを追加します。 これらの行を追加すると、Mercurialをインタラクティブに操作できます。
14.すべてが正しく行われたことを確認するには、新しいssh接続を作成し、Mercurialの機能を確認する必要があります。
$ hg --version
すべてが正しく行われた場合、次の形式のメッセージ:
Mercurial Distributed SCM (version 3.7)
Copyright (C) 2005-2016 Matt Mackall <mpm@selenic.com> 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.
15. Mercurialを非インタラクティブモードで動作させるには、 .bashrcファイルを追加する必要があります 。
export PATH=~/python/bin:$PATH export PYTHONPATH=~/python/lib64/python3.7/site-packages
変更を保存したら、非対話モードでコマンドを実行する必要があります。
$ ssh user@host hg --version
次のようなメッセージの場合:
Mercurial Distributed SCM (version 3.7)
Copyright (C) 2005-2016 Matt Mackall <mpm@selenic.com> 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.
その後、セットアップは完了です。
次の形式のメッセージがある場合:
sh: hg: command not found
これは、共有ホスティングでは、ユーザーが.bashrcをオーバーライドできないことを示しています。
コマンドが非対話モードで実行されるときに、必要な環境変数を直接渡すことができます。
$ssh user@host "export PATH=~/python/bin:$PATH;declare -x PYTHONPATH=~/python/lib64/python3.7/site-packages;hg --version"
フォームのメッセージが表示されます:
Mercurial Distributed SCM (version 3.7)
Copyright (C) 2005-2016 Matt Mackall <mpm@selenic.com> 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.
共有ホスティングでホストされているリモートリポジトリを使用する場合、リモートリポジトリに接続するコマンドには環境変数が必要です。
- クローン
- 発信
- 入ってくる
- 引く
- 押す
必要な環境変数を接続するには、 -configオプションを使用して、hgにパスを追加する必要があります。
$ hg --config ui.remotecmd='export "PATH=~/python/bin:$PATH";export "PYTHONPATH=~/python/lib64/python3.7/site-packages";~/python/bin/hg' inc
または、[ui]セクションの.hg / hgrcでこの設定を指定します。
[ui]
config ui.remotecmd = export "PATH=~/python/bin:$PATH";export "PYTHONPATH=~/python/lib64/python3.7/site-packages";~/python/bin/hg
これらの設定では、引用符が存在するため、リモートコマンドが実行されない場合があります。
この場合、次のパラメーターを使用して、hgコマンドの共有ホスティングに接続しているマシンの.bash_profileにエイリアスを作成できます。
alias hg="hg --config ui.remotecmd='export "PATH=~/python/bin:$PATH";export "PYTHONPATH=~/python/lib64/python2.6/site-packages";~/python/bin/hg'"
その後、通常の形式でコマンドを実行できます。
$ hg inc
使用される資料への参照:
- ルートアクセスなしで共有WebサーバーにMercurialをインストールする
- Pythonモジュールのインストール
- Python Windowsインストール ( Windowsの説明ですが、ここではWindowsは使用されませんでした)
- Mercurial-共通の問題
- Mercurialの構成ファイル
- Linux manページ-bash