パッケージを更新するたびに (パッケージが更新されるたびに)、TeXLive に関する次のメッセージが表示されます。
dpkg: warning: parsing file '/var/lib/dpkg/status' near line 2888 package 'texlive-local':
missing maintainer
これにより、パッケージのダウンロードやアップグレードが妨げられることはありません。ただし、これを停止したいと思います。
これどうやってするの?
答え1
パッケージtexlive-local
が不正な形式です。Maintainer
分野パッケージ内の .dept は必須ですが、技術的な理由で使用されるわけではありません。すべてのパッケージに何らかの追跡可能性を持たせるという社会的要件のためです。このフィールドがなくても問題は発生しませんが、これは発生してはならないことなのでdpkg
警告します。すべての公式パッケージにはこのフィールドがあります。
texlive-local
パッケージを削除するか、フィールドのあるバージョンにアップグレードすると、警告メッセージは消えますMaintainer
。そのパッケージのメンテナーに、電子メール アドレスのフィールドを追加するよう勧めることをお勧めします。これはソース ツリーにMaintainer
含まれます。debian/control
その間、パッケージ データベースを編集してそのフィールドを手動で追加することで、警告を取り除くことができます。 を編集し/var/lib/dpkg/status
、 とまったく同じ内容の行を検索しPackage: texlive-local
、そのすぐ下の内容の行を追加します(アドレスは構文的に正しい形式である必要がありますが、そこに誰かの名前を入れたくない場合は有効である必要はありません)。Maintainer: [email protected]
答え2
幸運ですね!バックアップがあります!しかも、知らないうちに毎日バックアップが作成されています!ファイルを復元するには、次のコマンドを実行します。
sudo rm /var/lib/dpkg/status
sudo cp /var/backups/dpkg.status.0 /var/lib/dpkg/status
sudo apt-get update
終わり!
さらに古いファイルが必要な場合は、次の場所から選択できます。
ls /var/backups/dpkg.status*
/var/backups/dpkg.status.0 /var/backups/dpkg.status.4.gz
/var/backups/dpkg.status.1.gz /var/backups/dpkg.status.5.gz
/var/backups/dpkg.status.2.gz /var/backups/dpkg.status.6.gz
/var/backups/dpkg.status.3.gz
次のコマンドを使用して解凍するだけですgunzip
:
gunzip -c /var/backups/dpkg.status.6.gz > /var/lib/dpkg/status
AskUbuntu での私自身の投稿:https://askubuntu.com/a/343620/169736
バックアップがうまくいかない場合doc
別の方法としては、ディレクトリの内容をリストすることです。
sudo -i
ls /usr/share/doc | \
grep -v [A-Z] | \
grep -v '^texmf$' | \
grep -v '^debian$' | \
awk '{print $1 " install"}' | \
dpkg --set-selections