CPAN対APT:バージョンの競合?


9

APT経由でインストールされたモジュールは、CPAN経由でインストールされたモジュールと競合しますか?

その質問に加えて、これらは次のとおりです。インストールされているCPANモジュールはどこにありますか?グローバルにアクセスできますか、それともインストールするユーザーだけがアクセスできますか?どれをどうやって知っていますか?インストールされているものと優先されるものはどのようにしてわかりますか?

APT経由でモジュールをインストールする場合でも、CPANを使用する必要がありますか?

回答:


8

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

cpanインストールされたモジュールが配置される場所は、PERLによって決定されますConfig.pm。私のUbuntu 11.04ではです/usr/local/share/perl/5.10.1
Riccardo Murri、2011

私はそれ/usr/local/shareが純粋なperlモジュールと/usr/local/libxsのもののためだと思います。
berekuk 2011

6

私はperlbrewを使用しています。Perlとcpanのローカルバージョンをインストールします。それが行うすべてはあなたのホームディレクトリで行われます。インストールと使用は簡単で、最新バージョンのPerlをインストールできます。


2
システムのperlから離れたい場合にも便利です。
szabgab 2011

4

CPANから直接インストールする場合は、ローカルのプライベートディレクトリにlocal :: libを使用することをお勧めします。ブーストラッピング技術を参照してくださいhttps://metacpan.org/module/local::lib

そうすることで、CPANにインストールされたモジュールはユーザーだけが使用するようになり、APTを使用してインストールされたモジュールとは非常に明確に分離されます。

また、問題が発生した場合、またはUbuntuをアップグレードした場合に、CPANにインストールされたモジュールを簡単に取り除くことができます。

それが私がUbuntuでそれを使う方法です。


1

両方を使用できますが、競合します。それらは同じ場所に書き込まれているため、aptから何かをインストールしてから、cpanから新しいバージョンをインストールすると、問題が発生する可能性があります。

私はPerlはあまりしませんが、Pythonでは確かにあなたが話しているジレンマがあります。apt-vs-PyPIです。個人的には、できる限りいつでもaptを選びます。つまり、Pythonパッケージを個別に保守することを忘れずに更新を取得する必要があります。それだけでなく、すべてのシステムが同じバージョンのパッケージで実行されている必要があることを意味します。

いつもうまくいくとは限りません。時には、リポジトリに十分に新しいものがないか、必要なものがパッケージ化されていない場合があります。どちらの方法も完璧ではありませんが、より完璧になる傾向があると思います。自分が何をしているかに注意してください。大丈夫です。


編集 -ほとんど忘れて、Pythonのように、システムが独自の環境を持ち、開発しているすべてのものが独自の環境(CPANで完全に管理されている)に住むことができるように、より良い方法がありますvirtualenv...

/programming/1423879/how-can-i-install-specialized-environments-for-different-perl-applications


CPANが一部Siteまたはsiteディレクトリにインストールされること、または少なくとも強制的にインストールされることを期待していました。
Mei

3
注:Ubuntuでは、cpan-installedモジュールは最終的に/ usr / local / share / perl(またはPERLで指定された場所Config.pm)に置かれますが、APTパッケージはDebianポリシーに従って/ usr / share / perl5に置かれます。したがって、それらは競合せ、他の回答が言うように、CPANとAPTのインストールを混合して一致させることは安全です。(ここでPythonは良いアナロジーではありません。PERLのパッケージングとモジュールの処理は、Pythonよりもはるかに異なり、-IMHOが優れています。)
Riccardo Murri

@Riccardo:なるほど。同じことがRed Hatにも当てはまりますが、場所が異なります。
Mei
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.