回答:
DebianおよびUbuntuでは、CPAN(/usr/bin/cpan
ユーティリティ)は/usr/local/lib/
デフォルトでモジュールをインストールします。そして、debianパッケージはファイルを/usr/share/perl5/
とに保持します/usr/lib/perl5/
。したがって、を介してインストールされた/usr/bin/cpan
ファイルは、aptを介してインストールされたファイルを上書きしません。
システムperlの使用には何の問題もありません。aptコードとcpanコードを混在させることで、通常は機能します。
aptリポジトリで利用できないcpanディストリビューションを手動でパッケージ化することもできます。dh-make-perlツールを使えば簡単です。
dh-make-perl --cpan Some::Module && cd Some-Module* && sudo debi
/usr/local/share
が純粋なperlモジュールと/usr/local/lib
xsのもののためだと思います。
私はperlbrewを使用しています。Perlとcpanのローカルバージョンをインストールします。それが行うすべてはあなたのホームディレクトリで行われます。インストールと使用は簡単で、最新バージョンのPerlをインストールできます。
CPANから直接インストールする場合は、ローカルのプライベートディレクトリにlocal :: libを使用することをお勧めします。ブーストラッピング技術を参照してくださいhttps://metacpan.org/module/local::lib
そうすることで、CPANにインストールされたモジュールはユーザーだけが使用するようになり、APTを使用してインストールされたモジュールとは非常に明確に分離されます。
また、問題が発生した場合、またはUbuntuをアップグレードした場合に、CPANにインストールされたモジュールを簡単に取り除くことができます。
それが私がUbuntuでそれを使う方法です。
両方を使用できますが、競合します。それらは同じ場所に書き込まれているため、aptから何かをインストールしてから、cpanから新しいバージョンをインストールすると、問題が発生する可能性があります。
私はPerlはあまりしませんが、Pythonでは確かにあなたが話しているジレンマがあります。apt-vs-PyPIです。個人的には、できる限りいつでもaptを選びます。つまり、Pythonパッケージを個別に保守することを忘れずに更新を取得する必要があります。それだけでなく、すべてのシステムが同じバージョンのパッケージで実行されている必要があることを意味します。
いつもうまくいくとは限りません。時には、リポジトリに十分に新しいものがないか、必要なものがパッケージ化されていない場合があります。どちらの方法も完璧ではありませんが、より完璧になる傾向があると思います。自分が何をしているかに注意してください。大丈夫です。
編集 -ほとんど忘れて、Pythonのように、システムが独自の環境を持ち、開発しているすべてのものが独自の環境(CPANで完全に管理されている)に住むことができるように、より良い方法がありますvirtualenv
...
/programming/1423879/how-can-i-install-specialized-environments-for-different-perl-applications
Site
またはsite
ディレクトリにインストールされること、または少なくとも強制的にインストールされることを期待していました。
cpan
-installedモジュールは最終的に/ usr / local / share / perl(またはPERLで指定された場所Config.pm
)に置かれますが、APTパッケージはDebianポリシーに従って/ usr / share / perl5に置かれます。したがって、それらは競合せず、他の回答が言うように、CPANとAPTのインストールを混合して一致させることは安全です。(ここでPythonは良いアナロジーではありません。PERLのパッケージングとモジュールの処理は、Pythonよりもはるかに異なり、-IMHOが優れています。)
cpan
インストールされたモジュールが配置される場所は、PERLによって決定されますConfig.pm
。私のUbuntu 11.04ではです/usr/local/share/perl/5.10.1
。