簡単に言うと:CPANを設定しようとしている間に不当な愚かなミスを犯しました。その結果、2つのバージョンのPerlが作成され、両方とも重要なパッケージがありませんでした。特に、これらのセミリリースには、apt-getまたはCPANが正しく機能するために必要な機能はありません。これは通常、私がPerlを実行するためのパッケージを入手する方法だと思います。
現在、この問題を解決するために私が考えることができる唯一の方法は、私が台無しにしていない(したがってPerlを深刻に損なわない)Debian VMがあるという事実に依存しているため、理論的には次のことを排除できます。 2つの部分を分割して、ホストコンピュータのバージョンからPerlをインストールし、仮想マシンで動作しているPerlのコピーを貼り付けます。この種の仕事に対する他の合理的なアプローチはありますか?
答え1
DebianのPerlはいくつかの部分に分かれています。セクションの1つ(perl-base
パッケージ)は、「基本」パッケージコレクションの一部です。 Debian はこれらのデフォルトパッケージを「Debian システムに常にインストールされる」と定義します。パッケージは、どのような依存関係も宣言しなくても使用可能であると仮定できます。これらのいずれかを削除すると、状況が非常に間違っている可能性があります。したがって、これを試みると、システムは大声でdpkg
文句を言い、フレーズ、句読点などをそのまま入力してシステムを中断するかどうかを確認するように要求します。Yes, do as I say!
決してこれをしないでください。システム自体が回復する可能性がほとんどない状態になります。
これにより、システムが破損しています。しかし、絶望しないでください。それでも修正できます。
- まず、実際にパッケージを
dpkg -l perl-base
紛失したことを確認してください。perl-base
コマンドの出力をii
含む行から。で始めるとperl-base
問題にならず、他の問題があるのです。この場合、特定のaptコマンドを実行しようとしたときに表示される正確なエラーメッセージを投稿してください。。そうしないと、デバッグが修正ビーズの問題になります。 - ダウンロード
perl-base
実行中のDebianバージョンのパッケージ。 - 次に実行すると、現在
ar x perl-base*deb
の作業ディレクトリに3つのファイルが作成されます。注:data.tar.gzはdata.tar.xzでもあります。システムにインストールされていない場合は、他のシステムでこの手順を実行し、結果ファイルを破損したシステムにコピーすることができます(すべてのUNIX様システムが動作し、Debianシステムである必要はありません)。debian-binary
data.tar.gz
control.tar.gz
ar
- tarball には、
data
パッケージがファイルシステムに入れたいファイルが含まれています。次のコマンドを使用して正しい場所に解凍します。tar xvaf data.tar.* -C /
。ここで、ドリルビットは、抽出するファイルシステムに関連するルートディレクトリを-C /
知らせる重要な部分です。tar
- ここに到着すると、失われたファイルがシステムに保存され、再び機能し
dpkg
ますapt
。しかし、まだ完了していません。ファイルはそこにありますが、「インストール」方式のためにファイルがないと思い、perl-base
奇妙dpkg
な作業を始めることができます。したがって、を実行して「再」インストールする必要がありますdpkg -i perl-base*deb
。
今、すべてが修正されなければなりません。次に、dpkg
そのフレーズを入力するように求められたら、賢明に「いいえ」と言ってください。