修復 pkg_info currupted 問題

問題描述

因為我用不正確的方式,混用 pkg_add perl5.10,然後先前已經用 ports install 的 perl5.8 以及其他套件,導致我在編譯套件時,make install 都會發現 pkgdep 問題,大致訊息如下:

pkg_info: corrupted record (pkgdep line without argument), ignoring

然後問題就來啦,太多套件都這樣了,查一查官方討論區,使用這個指令:

$ grep -A1 "^@pkgdep $" /var/db/pkg/*/+CONTENTS

列出:

--
/var/db/pkg/xf86-video-vesa-2.3.0/+CONTENTS:@pkgdep
/var/db/pkg/xf86-video-vesa-2.3.0/+CONTENTS-@comment DEPORIGIN:lang/perl5.8
--
/var/db/pkg/xf86-video-vmware-10.16.9/+CONTENTS:@pkgdep
/var/db/pkg/xf86-video-vmware-10.16.9/+CONTENTS-@comment DEPORIGIN:lang/perl5.8
--
/var/db/pkg/xorg-7.5/+CONTENTS:@pkgdep
/var/db/pkg/xorg-7.5/+CONTENTS-@comment DEPORIGIN:lang/perl5.8
--
/var/db/pkg/xorg-drivers-7.5/+CONTENTS:@pkgdep
/var/db/pkg/xorg-drivers-7.5/+CONTENTS-@comment DEPORIGIN:lang/perl5.8
--
/var/db/pkg/xorg-server-1.7.5,1/+CONTENTS:@pkgdep
/var/db/pkg/xorg-server-1.7.5,1/+CONTENTS-@comment DEPORIGIN:lang/perl5.8

也就是出現 @pkgdep 後面沒接東西,正常要是 @pkgdep pkg-config-0.23_1 類似這種才對。

解決方式

逐一清除錯誤的這兩行,然後實在是很累,除非你寫程式自己砍;要不就來用 portmaster 吧:

安裝:

# cd /usr/ports/ports-mgmt/portmaster; make install

然後:

# portmaster --check-depends

就會問你要不要刪除錯誤的 pkgdep 啦:

===>>> Checking gnome-media-2.30.0_1
        ===>>> lang/perl5.8 is listed as a dependency
        ===>>> but there is no installed version

        ===>>> Delete this dependency data? y/n [n]

按下 y 然後繼續操作吧 :)

內容目錄

上一個主題

FreeBSD send-pr

下一個主題

保護重要檔案 - 連 root 都動不得的權限

本頁