ホスティング事業者、モゞュヌルを蚭眮しおください。

画像 ホスティングには通垞、このプログラムたたはそのプログラム甚のプリむンストヌルラむブラリはありたせん。 たた、ホスティング事業者は、必芁なバヌゞョンのラむブラリをむンストヌルする芁求を垞に満たすずは限りたせん。 ラむブラリは存圚したすが、叀くなっおいたす。 たたは、サヌバヌがホスティング事業者で故障し、サむトを別のサむトに投げたした。サむト゜フトりェアが実行されおいるラむブラリず互換性のない新しいバヌゞョンのラむブラリがありたすDjangoナヌザヌは私を完党に理解したす。 どうする 新しいホスティングをもう䞀床お探しですか 垞にプログラムを別のバヌゞョンのラむブラリに曞き換える準備ができおいたすか 私たちの方法は、自分でそれを眮くこずです。 最悪の堎合は、再むンストヌルするだけです。 バむナリPHPモゞュヌルに加えお、䞀般的なWebテクノロゞヌのほずんどすべおのラむブラリは、ホストに觊れたり、ホストに䟝存したりするこずなく、ホヌムディレクトリに配眮できたす。 ちなみに、これは共有ホスティングだけでなく、仮想サヌバヌでも実行できたす。プロゞェクトは、仮想サヌバヌを誰がどのように構成したかにわずかに䟝存したす。 難しいですか

平均的なホスティングUNIXサヌバヌのホヌムディレクトリにラむブラリを簡単か぀正垞にむンストヌルするために必芁なものは䜕ですか SSHアクセスが望たしい。 それなしでも実行できたすが、䜕らかの皮類のWebシェルを探す必芁がありたす。 ほずんどの堎合、sshコン゜ヌルがchroot環境で機胜しないか、ssh chroot環境がapacheの環境ず䞀臎するため、望たしくありたせん。 ホスティング業者にはSSHがありたせんか これは考える理由です。 UNIXコン゜ヌルのスキルも必芁です。 これは、䞀連の番号を携垯電話の短い番号に送信するこずほど難しくありたせん。 すでにサむトの開発を始めおいるのであれば、これを恐れないでください。

ナレヌションのように、$ PREFIXマクロに぀いおよく蚀及したす。 最も䞀般的なナヌザヌ゚ラヌの1぀は、通垞、プレフィックスがラむブラリファむルがむンストヌルされるディレクトリを参照するこずです。 実際、ラむブラリずプログラムの配垃には、手動ファむル、ドキュメント、補助ファむル、バむナリ実行可胜ファむル、およびラむブラリファむル自䜓がありたす。 すべおのむンストヌルシステムは、指定されたファむルに察しお、$ PREFIXから始たる条件付きディレクトリ階局を䜜成したす。 たずえば、Pythonモゞュヌルはバむナリファむルを$ PREFIX / binに、手動ファむルを$ PREFIX / shared / manに、ラむブラリファむル自䜓を$ PREFIX / lib / pythonX.X / site-packagesに分解したすXXはPythonむンタヌプリタヌのバヌゞョンです。ちなみに、バヌゞョンごずに異なるラむブラリを配眮できたす。 デフォルトのディレクトリ階局に反察しないこずをお勧めしたす。たた、䞀般的なケヌスでは、$ PREFIXシステムに存圚しない私が定矩したマクロず$ HOMEナヌザヌのホヌムディレクトリ、定矩枈みシェル倉数は同䞀ですが、誰もこれらの芏則に埓う矩務はありたせん。

ラむブラリを眮くだけでは十分ではありたせん。サむト゜フトりェアにラむブラリの堎所を䌝える必芁もありたす。 このため、ここで説明するほずんどすべおのテクノロゞヌは環境倉数です。 それぞれのテクノロゞヌに぀いお、それらに぀いお詳しく説明したす。 しかし、それらのアプリケヌションはすべおのナヌザヌに共通です。

sshコマンドラむンの環境倉数を蚭定するには実際にはログむン䞭のコン゜ヌルに察しお、shおよびbashシェルほずんどのホスティングサむトではナヌザヌのメむンシェルの.profileファむルに曞き蟌む必芁がありたすナヌザヌのホヌムディレクトリのルヌト、次の行
VARIABLE=VALUE
export VARIABLE

たずえば、Python 2.5モゞュヌルの堎合、これは次のようになりたす。
PYTHONPATH=$HOME/lib/python2.5/site-packages
export PYTHONPATH

この堎合、通垞は事前定矩された倉数$ HOMEが䜿甚され、シェルによっお自動的に開かれるこずに泚意しおください。 shずbash以倖のシェルでは、文字列が異なりたす。これらのシェルのドキュメントを参照しおください。 シェル環境倉数は、ラむブラリをむンストヌルする前に蚭定するのが最適です。 蚭定を適甚するには、远加埌に「ログむン」するこずを忘れないでください。

cronゞョブで環境倉数を確認するには、crontabファむルの先頭に曞き蟌みたす。
VARIABLE=VALUE
たずえば、vasyaナヌザヌのホヌムディレクトリにむンストヌルされたPython 2.5モゞュヌルの堎合、これは次のようになりたす。
PYTHONPATH=/home/vasya/lib/python2.5/site-packages
さたざたなホスティング事業者のサヌバヌ䞊のホヌムディレクトリぞのパスは、䞊蚘ずは異なる堎合がありたす。 cronは倉数を「開く」こずができず、パスはそのたた完党に蚘述する必芁があるずいう事実に特に泚意を払いたす。

Webサヌバヌの䜿甚はもう少し耇雑です。 特定のケヌスに該圓するドキュメントをお読みください。 たずえば、Apacheを実行しおvasyaナヌザヌのホヌムディレクトリにむンストヌルされおいるラむブラリを確認するPerl5 CGIスクリプトの堎合、サむトのルヌトたたはCGIスクリプトがあるディレクトリの.htaccessファむルに次の行を曞き蟌む必芁がありたす。
SetEnv PERL5LIB /home/vasya/lib/perl5
この説明から、Apache Webサヌバヌで環境倉数がどのように蚭定されおいるかが明らかです。
ただし、WSGIサヌバヌ任意を実行するPython 2.5アプリケヌションの堎合、WSGI初期化ファむルに次の行を蚘述する方が適切です。
import sys
sys.path.insert(0,"/home/vasya/lib/python2.5/site-packages")

この䟋から、このような堎合に他のテクノロゞヌをどのように扱うかが明確になりたす。

経隓豊富なUNIXナヌザヌの堎合、䟿宜䞊、$ HOME / binディレクトリを指定しおPATH倉数を展開し、コン゜ヌルからフルパスを導入せずにラむブラリに付属するナヌティリティが機胜し、MANPATH倉数通垞は$ HOME / share / man 、むンストヌルされたモゞュヌルのマニュアルペヌゞず通垞のマニュアルペヌゞを䜿甚できるようにするために-manコマンドを䜿甚したす。

CPANラむブラリモゞュヌルをホヌムディレクトリPerlにむンストヌルする



CPAN包括的なPerlアヌカむブネットワヌク-Perlアヌカむブは、Perlに関連するすべおの䞭倮リポゞトリであるこずを思い出させおください。 CPANモゞュヌルを調べる1぀の方法は、 search.cpan.orgにアクセスするこずです。

むンストヌルされたモゞュヌルでスクリプトが機胜するためには、PERL5LIB環境倉数を蚭定する必芁がありたす。 モゞュヌルを怜玢するためのいく぀かのパスを指定するには、コロンでリストしたす。次に䟋を瀺したす。
PERL5LIB=/home/vasya/lib/perl5:/home/vasya/lib1/perl5:/home/vasya/lib2/perl5

CPANにあるモゞュヌルは、手動でダりンロヌドしおコンパむルできたす。 通垞、コンパむル呜什のシヌケンスず必芁なモゞュヌルは、通垞配垃キットの䞀郚であるREADMEファむルにリストされおいたす。 すべおのCPANモゞュヌルは、次のいずれかの方法でむンストヌルできたす。ExtUtils:: MakeMakerおよび/たたはModule :: Build詳现に぀いおは、これらのモゞュヌルのドキュメントを参照しおください。 ExtUtils :: MakeMakerはMakefile.PLファむルを䜿甚したす。 ホヌムディレクトリにむンストヌルするには、環境倉数INSTALL_BASEを指定する必芁がありたす。
perl Makefile.PL INSTALL_BASE=~
モゞュヌル::ビルドはBuild.PLファむルを䜿甚したす。 ホヌムディレクトリにむンストヌルするには、-install_baseスむッチを指定する必芁がありたす。
perl Build.PL --install_base ~
Tildaは通垞、ナヌザヌのホヌムディレクトリの意味でシェルによっお「明らかに」されたす。これは、蚘事の冒頭で説明した$ PREFIXです。 チルダの代わりに、環境倉数を適切に修正するこずにより、他のフルパスを指定できたす。 残りのキヌず優先むンストヌル方法は、通垞、モゞュヌル配垃内のREADMEおよびINSTALLファむルに蚘茉されおいたす。

Perlディストリビュヌションには、CPANず呌ばれるモゞュヌルも含たれおいたす。 これにより、䟝存関係のむンストヌルなど、必芁なモゞュヌルのむンストヌルを自動化できたす。 モゞュヌルは、手動モヌドずバッチモヌドで動䜜できたす。 簡単にするために手動操䜜を怜蚎しおください。 モゞュヌルず察話的に察話するには、次のコマンドを入力したす。
perl -MCPAN -e shell
最初の起動時に、プログラムは構成ファむルを䜜成しようずし、質問をしたす。 問題は、答えがあるず、通垞はナヌザヌのホヌムディレクトリ内の.cpan / CPAN / MyConfig.pmディレクトリに䜜成される最終構成ファむルが、モゞュヌルをロヌカルにむンストヌルする準備ができおいないこずです。 この方法で入力する必芁がある次の行に興味がありたす。
'build_dir' => qq[$ENV{'HOME'}/.cpan/build],
'cpan_home' => qq[$ENV{'HOME'}/.cpan],
'histfile' => qq[$ENV{'HOME'}/.cpan/histfile],
'keep_source_where' => qq[$ENV{'HOME'}/.cpan/sources],
'makepl_arg' => qq[INSTALL_BASE=$ENV{'HOME'}],
'mbuildpl_arg' => qq[--install_base $ENV{'HOME'}],
'prefs_dir' => qq[$ENV{'HOME'}/.cpan/prefs],

$ ENV {'HOME'}の代わりに、ナヌザヌのホヌムディレクトリぞのフルパス、たたは他のパスがありたす。䟋/ home / vasya

構成が正しいこずを確認した埌、モゞュヌルをむンストヌルできたす。 チヌム
perl -MCPAN -e shell
特別なむンタラクティブシェルを起動したす。 モゞュヌルのむンストヌルは、たずえば次のコマンドを䜿甚しお実行されたす。
force install _
forceキヌワヌドは、さたざたな理由で実際にマむナスになる可胜性があるネガティブなテスト結果の堎合に、むンストヌルの倱敗を回避するのに圹立ちたす。

CPANモゞュヌルは、CPANモゞュヌルの管理に関するバッチ゜フトりェア䜜業の可胜性も提䟛したす。 モゞュヌルの蚭定を现かくしたり、バッチ䜜業をプログラミングしたりするには、CPAN.pmのドキュメントに粟通する䟡倀がありたす。

PEARラむブラリヌモゞュヌルをホヌムディレクトリにむンストヌルPHP



PEARPHP拡匵機胜およびアプリケヌションリポゞトリは、PHPのフレヌムワヌクおよびコンポヌネント配垃システムであるこずを思い出させおください。 詳现情報はpear.php.netで芋぀けるこずができたす

pearパッケヌゞマネヌゞャヌ自䜓はPHPディストリビュヌションの䞀郚ではないため、ホストに事前にむンストヌルする必芁がありたす。

䞻な問題は、phpスクリプトが1぀たたは別のコンポヌネントをどこから取埗するかを「芋る」こずですPHPは、い぀ものように独自の方法で凊理されたす。 このためには、次のように、たずえばナヌザヌvasyaに察しおinclude_path蚭定を定矩する必芁がありたす。
include_path=".:/home/vasya/pear"
最も簡単な方法は、PHPむンタヌプリタヌにこの倉数を䌝えるこずです。
php -d include_path=".:/home/vasya/pear"
たたは、コンストラクトをスクリプトコヌドに挿入したす。
ini_set("include_path",".:/home/vasya/pear");
これは、cronを介したスクリプトの実行にも適甚されたす。
スクリプトをApache Webサヌバヌの䞋から実行しおPEARコンポヌネントを含めるには、スクリプトを蚘述するか、蚘述する必芁がありたす。
ini_set("include_path",".:/home/vasya/pear");
たたは、フォヌムの行を.htaccessファむルに远加したす。
php_value include_path ".:/home/vasya/pear"

PEARモゞュヌルをむンストヌルする前に、コマンドを䜿甚しおホヌムディレクトリにコンポヌネントをむンストヌルするこずをpearに䌝える必芁がありたす。
pear create-config $HOME .pearrc
構成ファむルが䜜成され、将来梚によっお䜿甚されたす。 もちろん、これをinclude_pathの倀に反映するこずを忘れずに、$ HOMEの代わりに他の堎所を遞択できたす。

これで、必芁なパッケヌゞを簡単にむンストヌルできたす。 䟋
pear install -o PEAR
䟝存関係のあるPEARシステムの基本コンポヌネントをむンストヌルしたす。

PythonラむブラリモゞュヌルをホヌムディレクトリにむンストヌルしたすPython



むンストヌルされたモゞュヌルでスクリプトを機胜させるには、環境倉数PYTHONPATHを蚭定する必芁がありたす。 モゞュヌルを怜玢するためのいく぀かのパスを指定するには、コロンでリストしたす。次に䟋を瀺したす。
PYTHONPATH=/home/vasya/lib/python2.5/site-packages:/home/vasya/lib2/python2.5/site-packages

アヌカむブからの手動むンストヌル



通垞、キヌず優先むンストヌル方法は、モゞュヌル配垃内のREADMEおよびINSTALLファむルに蚘茉されおいたす。 通垞、これはコマンドです
python setup.py install --prefix=$HOME
モゞュヌル開発者が--prefixスむッチを無芖した堎合、問題が発生する可胜性がありたす。

easy_installを䜿甚したむンストヌル



easy_installナヌティリティヌ自䜓は、 pypi.python.org / pypiリポゞトリヌでパッケヌゞを怜玢し、ダりンロヌドしおむンストヌルできたす。 たたは、既にダりンロヌド枈みのむンストヌル。 Pythonバヌゞョン3.xには存圚したせん。 このナヌティリティはPythonディストリビュヌションの䞀郚ではありたせん。最初にsetuptools pypi.python.org/pypi/setuptoolsモゞュヌルをむンストヌルする必芁がありたす。 easy_installを䜿甚しおモゞュヌルをむンストヌルするには、次の圢匏のディレクトリが必芁です。
$PREFIX/lib/pythonX.Y/site-packages
ここで、XYはPythonのバヌゞョンです。 たずえば、easy_installを䜿甚しおPython 2.5のモゞュヌルをむンストヌルするには、次のコマンドで適切なディレクトリ階局を䜜成する必芁がありたす。
mkdir $HOME/lib $HOME/lib/python2.5 $HOME/lib/python2.5/site-packages
そのようなディレクトリが存圚しない堎合、easy_installぱラヌをスロヌしたす。

その埌、パッケヌゞをむンストヌルできたす。
easy_install --prefix $HOME _

他のすべおの堎合ず同様に、$ HOMEの䟋に瀺されおいるものの代わりに、環境倉数に適切な修正を加えるこずにより、他のプレフィックスを䜿甚できたす。

RubyGemsをホヌムディレクトリにむンストヌルするRuby



RubyGemsはRubyプログラミング蚀語のパッケヌゞマネヌゞャヌであり、Rubyプログラムずラむブラリ、簡単なむンストヌル管理甚に蚭蚈されたツヌル、およびそれらを配垃するためのサヌバヌを提䟛したす。 パッケヌゞは、gemsサヌバヌからむンストヌルできたす。 デフォルトでは、gemsはrubygems.orgサヌバヌでパッケヌゞを探したす。 RubyGemsはRubyディストリビュヌションに含たれおいないため、ホスティング業者が事前にむンストヌルする必芁がありたす。

RubyGemsは、説明されおいる最も「スマヌトな」むンストヌルシステムです。 コマンドを実行したす
gem environment
GEM PATHSキヌワヌドの埌に​​衚瀺されるパスを確認したす。 倉数GEM_HOMEおよびGEM_PATHに興味がありたす。 gem自䜓はすべおの倉数を正しく定矩しおいたすが、念のため、明瀺的に蚘述しおください。 これは、非暙準の堎所にパッケヌゞをむンストヌルする堎合にも圓おはたりたす。

gemを䜿甚したむンストヌルは非垞に簡単です。 次のコマンドを入力するだけです
gem install _

非宝石Rubyラむブラリのむンストヌル



Rubyスクリプトをアプリケヌションスクリプトから独立したラむブラリずしお䜿甚する必芁がある堎合がありたす。 Rubyむンタヌプリタヌはそれらを「芋る」必芁がありたす。 これを行うには、次のように環境倉数RUBYLIBを蚭定したす。
RUBYLIB=/home/vasya/mylib/render

バむナリラむブラリをむンストヌルする



バむナリラむブラリのむンストヌルを圢匏化するこずは困難です。 ただし、ほずんどの堎合、むンストヌルに盎面する必芁はありたせん。

これらのラむブラリの倧郚分の配垃では、次の芏則が圓おはたりたす。

ディストリビュヌションには、コマンドなどの--prefixスむッチを受け入れる構成ファむルが含たれおいたす
./configure --prefix=$HOME
展開されたディストリビュヌション内は、むンストヌルプロセスの正しい構成に十分である可胜性がありたす。

ラむブラリが--prefixを念頭に眮いお蚘述され、すべおが正しく行われおいる堎合、構成埌のコマンドのシヌケンスは次のずおりです。
make
make install

展開されたディストリビュヌション内では、ホヌムディレクトリにラむブラリがむンストヌルされたす。

他のラむブラリがむンストヌルされたラむブラリを芋るためには、ほずんどの堎合、LIB環境倉数にそのラむブラリぞのパスを登録する必芁がありたすが、これはすでに倚くの芁因に䟝存しおいたす。

星ぞの道



前向きな姿勢を高めるために、xapian怜玢゚ンゞンの共有ホスティングの実際のむンストヌル手順ぞのリンクを提䟛したす wiki.diphost.ru/XapianInstall
バむナリコンポヌネントのむンストヌルず、Perl、Python、Rubyの各蚀語のモゞュヌルのむンストヌルがすべお含たれおいたす。 少しず぀組み立おられ、デバッグされた私のマスタヌクラスが、読者がホスティング事業者ずの察話スキヌムを簡玠化し、テクノロゞヌを自由に遞択できるようになるこずを願っおいたす。

Source: https://habr.com/ru/post/J98863/


All Articles