Fix inconsistent/broken pkgng on FreeBSD

Environment:
FreeBSD 10.1-RELEASE-p8 i386

Problem:

  • FreeBSD repository is up-to-date & all repositories are up-to-date, but when I try to install some package, it’ll try to fetch the non-latest version(so … 404 not found)
  • Keep getting message like this : pkg: cached package bind-tools-9.10.2: size mismatch, fetching from remote
  • pkd version said that there are some out-date packages, but pkg upgrade said every thing is up-to-update

pkg update -> not working
pkg clean + pkg update -> still not working
reboot -> of course not working …

So I did this to clean its cache:
$ sudo rm -rf /var/cache/pkg/*
and force update
$ sudo pkg update -f

Fortunately, it works fine now.

FreeBSD 可以用 pkg 安裝的常用軟體清單整理…

FreeBSD 的 pkgng 越來越成熟方便了,除了後面有支援直接安裝編譯好的套件外,還有一個很大的體會是從這次 bash 的 Shellshock 漏洞爆出來之後(因為漏洞修了不只一次),用pkg upgrade來更新可以很快就搞定 …

同之前整理的Debian/Ubuntu GNU/Linux 常用軟體,也來整理一份 FreeBSD 可以直接用pkng安裝的軟體好了 … 灌好系統就可以順手裝一下 … 反正 FreeBSD 不太可能被我拿來當直接當 Desktop,GUI 的就不必考慮了 …

aria2 sudo bash bash-completion vim tmux htop vnstat curl zsh mtr tree git tig p7zip mosh nmap irssi w3m unzip GeoIP rsync wget gcc gmake portmaster iftop colordiff bind-tools openjdk8-jre screenfetch youtube_dl node npm pxz freecolor gsed coreutils pv most openssh-portable binutils gnugrep pv timelimit

PS: 清單是基於 FreeeBSD 10.1 整理的,還有什麼缺的就慢慢補囉…

設定 FreeBSD update & ports & package 使用 local mirror server

2016/1/20更新:
今天測試, freebsd-update,portsnap 和 pkg 的 tw mirror 已經失效

( 在 Facebook FreeBSD Taiwan 社團看到 消息 表示已經有自動台灣分流了,只是不知道為什麼我都會看到從 aws ec2 抓檔案 )
至於 make.conf 的部份還是可以繼續使用 (也強烈建議使用),在 build ports 的時候對下載 source code 的速度幫助很大!

FreeBSD 上常用來更新系統以及套件的工具的 mirror 設定:

設定檔位置:
/etc/freebsd-update.conf
/etc/portsnap.conf (使用portsnap更新ports才會有)
/etc/pkg/FreeBSD.conf (使用pkgng管套件才會有)
/etc/make.conf (可能需要自行建立)

/etc/make.conf 的部分,自行加入或修改現有的 MASTER_SITE_OVERRIDE / MASTER_SITE_BACKUP:
(這部份是在編 ports 的時候拉 src / tarball 會用到)

MASTER_SITE_BACKUP?= \
http://ftp.tw.freebsd.org/pub/FreeBSD/distfiles/${DIST_SUBDIR}/
MASTER_SITE_OVERRIDE?= ${MASTER_SITE_BACKUP}

/etc/freebsd-update.conf 的部分 (freebsd-update):
ServerName update.FreeBSD.org
改成
ServerName update.tw.FreeBSD.org

/etc/portsnap.conf 的部分 (portsnap):
SERVERNAME=portsnap.FreeBSD.org
改成
SERVERNAME=portsnap.tw.FreeBSD.org

 

/etc/pkg/FreeBSD.conf 的部分:
url: "pkg+http://pkg.FreeBSD.org/${ABI}/latest",
改成
url: "pkg+http://pkg.tw.FreeBSD.org/${ABI}/latest",

tw 的部分看所在地區再做調整即可,台灣地區 mirror list 可以參考:
http://wiki.tw.freebsd.org/doc/freebsd_taiwan_mirror_sites

FreeBSD 官方放的 mirror list 可以參考這一份:
http://www.freebsd.org/doc/handbook/mirrors-ftp.html

設好 mirror 之後要裝套件速度真的會快很多!

把 FreeBSD 9.1 的套件管理機制從 pkg 轉到 pkgng

pkgng 是 FreeBSD 10.0 開始才有的套件管理機制

有鑑於 FreeBSD 9.1 上的 “pkg_install EOL is scheduled for 2014-09-01” 訊息不斷跳出來提醒 …

終於決定開始著手轉換至新的套件管理機制

方法參照:5.4. Using pkgng for Binary Package Management

FreeBSD 8.4 以後的版本可以直接執行(更早的版本需手動安裝ports-mgmt/pkg):
/usr/sbin/pkg

然後會出現:

The package management tool is not yet installed on your system.
Do you want to fetch and install it now? [y/N]:

當然就回答 y 繼續
閱讀全文