web-dev-qa-db-ja.com

すべてのPerlモジュールの誤ったインストールを取り消すにはどうすればよいですか?

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から不要なモジュールを削除するだけですか?

8
paulrehkugler

これをもう少し詳しく見てみると、システム上のディレクトリやファイルを削除する必要がある、またはすべきとは思わない。

コマンドラインからコマンド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モジュールのアップグレードはシステムリポジトリに影響しません

幸運を祈ります。パニックにならないでください。

5
Kevin Bowen

apt-get remove <installed-packages> && apt-get autoremove(依存関係を削除する)&& apt-get purge <installed-packages>(構成ファイルの削除を削除する)を実行することをお勧めします。その後、不要なフォルダーを削除できますが、既に行われているはずです:)

0
Stefan