CPANを使用してPerlモジュールをアップグレードしようとしましたが、アップグレードする正規表現/モジュール名を指定しませんでした:Perl -MCPAN -e 'upgrade'
;最悪の事態(perldoc perllocal
の出力でサポートされているようです)、つまりCPANのすべてのPerlモジュールがインストールされていると仮定することができます。
この混乱を元に戻すにはどうすればよいですか? /usr/local/share/Perl
を削除できると思いますが、その意味は何ですか?
編集:私はまだハードドライブに95%の空き容量があるので、それほど大きな問題ではありません。たくさんの不必要な混乱が欲しくありません。 rm
をそのディレクトリに追加し、dpkg --purge Perl
を実行し、apt-get
およびCPANインストールプロセスをやり直すことを検討しています。しかし、それは本当に必要ですか、それとも/usr/local/share/Perl
から不要なモジュールを削除するだけですか?
これをもう少し詳しく見てみると、システム上のディレクトリやファイルを削除する必要がある、またはすべきとは思わない。
コマンドラインからコマンドPerl -MCPAN -e 'upgrade'
を実行しませんシステムに追加のモジュールをインストールします。
onlyは、CPANパッケージ管理システムを介して、インストールされたモジュールのアップグレードを試みます。Synapticを介さない。
これは、cpan[1]>
プロンプトで 'r'コマンドを実行してからアップグレードコマンドを実行することに似ています。 here を参照してください。
CPANとSynapticは、2つの別個の異なるパッケージ管理システムです。
これは、CPANから可能なすべてのPerlモジュールをインストールするしませんです。また、既存のシステムパッケージdBも変更しません。したがって、これを確実に安全にロールバックできます。
ただし、アプリケーションまたはシステムがPerlモジュールの特定のバージョンに依存している場合、これは依然として潜在的に危険です。
アップグレードプロセスを中断した場合、システムへの損害を回避した可能性が高くなります。
回復オプション:
コマンドラインからcpan
を起動し、コマンドrを実行して、インストールされているモジュールと利用可能なアップグレードのリストを表示します。たとえば、ここに私のcpanからの短縮出力があります:
cpan[7]> r
Package namespace installed latest in CPAN file
App::Cpan 1.5701 1.61 BDFOY/App-Cpan-1.61.tar.gz
DBD::mysql 4.020 4.022 CAPTTOFU/DBD-mysql-4.022.tar.gz
DBI 1.616 1.623 TIMB/DBI-1.623.tar.gz
DB_File 1.821 1.827 PMQS/DB_File-1.827.tar.gz
Error 0.17010 0.17019 SHLOMIF/Error-0.17019.tar.gz
Eval::Closure 0.06 0.08 DOY/Eval-Closure-0.08.tar.gz
....
この例では、Eval::Closure
モジュールを使用します。 Perl -MCPAN -e 'upgrade'
コマンドを完了させ、バージョン0.08がインストールされたとしましょう。
この場合、Synapticを見ると、リポジトリ内の最新バージョンが0.06(0.06-1、具体的には私のインスタンス)のままであることがわかります。
次のコマンドを実行して、システムバージョンにロールバックできます。
Sudo apt-get install --reinstall libeval-closure-Perl
Perlモジュールを手動でインストールし、以前のバージョンにロールバックする場合は、それらを(source.cpan.orgまたは他の場所から)再度ダウンロードし、手動で再インストールする必要があります。
要約すると:CPAN内のPerlモジュールのアップグレードはシステムリポジトリに影響しません
幸運を祈ります。パニックにならないでください。
apt-get remove <installed-packages> && apt-get autoremove
(依存関係を削除する)&& apt-get purge <installed-packages>
(構成ファイルの削除を削除する)を実行することをお勧めします。その後、不要なフォルダーを削除できますが、既に行われているはずです:)