Freenas
如何在 freenas (freebsd) 上進行 pkg 升級
我在嘗試自己託管的新伺服器上安裝了 freenas 伺服器。然後我在 3*5TB 硬碟上創建了一個卷 (ZFS)。最後,我以 root 身份通過 ssh 登錄並嘗試了
pkg upgrade
所有軟體包。這行不通:[root@kfreenas] ~# pkg update Updating local repository catalogue... pkg: file:///usr/ports/packages/meta.txz: No such file or directory repository local has no meta file, using default settings pkg: file:///usr/ports/packages/packagesite.txz: No such file or directory Unable to update repository local [root@kfreenas] ~# pkg upgrade Updating local repository catalogue... pkg: file:///usr/ports/packages/meta.txz: No such file or directory repository local has no meta file, using default settings pkg: file:///usr/ports/packages/packagesite.txz: No such file or directory Unable to update repository local All repositories are up-to-date. Checking for upgrades (0 candidates): 100% Processing candidates (0 candidates): 100% Checking integrity... done (0 conflicting) Your packages are up to date
我在某處讀到我必須先做
pkg2ng
。這導致了許多這樣的行:... pkg: fstat() failed for(/usr/local/include/X11/Xalloca.h): No such file or directory pkg: fstat() failed for(/usr/local/include/X11/Xarch.h): No such file or directory pkg: fstat() failed for(/usr/local/include/X11/Xatom.h): No such file or directory pkg: fstat() failed for(/usr/local/include/X11/Xdefs.h): No such file or directory ...
順便說一句:pkg -vv:
[root@kfreenas] ~# pkg -vv Version : 1.7.2 PKG_DBDIR = "/var/db/pkg"; PKG_CACHEDIR = "/var/cache/pkg"; PORTSDIR = "/usr/ports"; INDEXDIR = ""; INDEXFILE = "INDEX-10"; HANDLE_RC_SCRIPTS = false; DEFAULT_ALWAYS_YES = false; ASSUME_ALWAYS_YES = false; REPOS_DIR [ "/etc/pkg/", "/usr/local/etc/pkg/repos/", ] PLIST_KEYWORDS_DIR = ""; SYSLOG = true; ABI = "FreeBSD:10:amd64"; ALTABI = "freebsd:10:x86:64"; DEVELOPER_MODE = false; VULNXML_SITE = "http://vuxml.freebsd.org/freebsd/vuln.xml.bz2"; FETCH_RETRY = 3; PKG_PLUGINS_DIR = "/usr/local/lib/pkg/"; PKG_ENABLE_PLUGINS = true; PLUGINS [ ] DEBUG_SCRIPTS = false; PLUGINS_CONF_DIR = "/usr/local/etc/pkg/"; PERMISSIVE = false; REPO_AUTOUPDATE = true; NAMESERVER = ""; HTTP_USER_AGENT = "pkg/1.7.2"; EVENT_PIPE = ""; FETCH_TIMEOUT = 30; UNSET_TIMESTAMP = false; SSH_RESTRICT_DIR = ""; PKG_ENV { } PKG_SSH_ARGS = ""; DEBUG_LEVEL = 0; ALIAS { all-depends = "query %dn-%dv"; annotations = "info -A"; build-depends = "info -qd"; cinfo = "info -Cx"; comment = "query -i \"%c\""; csearch = "search -Cx"; desc = "query -i \"%e\""; download = "fetch"; iinfo = "info -ix"; isearch = "search -ix"; prime-list = "query -e '%a = 0' '%n'"; leaf = "query -e '%#r == 0' '%n-%v'"; list = "info -ql"; noauto = "query -e '%a == 0' '%n-%v'"; options = "query -i \"%n - %Ok: %Ov\""; origin = "info -qo"; provided-depends = "info -qb"; raw = "info -R"; required-depends = "info -qr"; roptions = "rquery -i \"%n - %Ok: %Ov\""; shared-depends = "info -qB"; show = "info -f -k"; size = "info -sq"; } CUDF_SOLVER = ""; SAT_SOLVER = ""; RUN_SCRIPTS = true; CASE_SENSITIVE_MATCH = false; LOCK_WAIT = 1; LOCK_RETRIES = 5; SQLITE_PROFILE = false; WORKERS_COUNT = 0; READ_LOCK = false; PLIST_ACCEPT_DIRECTORIES = false; IP_VERSION = 0; AUTOMERGE = true; VERSION_SOURCE = ""; CONSERVATIVE_UPGRADE = true; PKG_CREATE_VERBOSE = false; AUTOCLEAN = false; DOT_FILE = ""; REPOSITORIES { } VALID_URL_SCHEME [ "pkg+http", "pkg+https", "https", "http", "file", "ssh", "ftp", "ftps", "pkg+ssh", "pkg+ftp", "pkg+ftps", ] ALLOW_BASE_SHLIBS = false; WARN_SIZE_LIMIT = 1048576; Repositories: local: { url : "file:///usr/ports/packages", enabled : yes, priority : 0 }
您實際上不應該在 FreeNAS 主主機上使用 shell,因此
pkg
儲存庫被禁用。如果你想在機器上安裝一個 shell,你應該考慮創建一個Jail(如輕量級虛擬機)並將其用於 shell 訪問。
如果你真的想
pkg
在主 FreeNAS 主機上使用,並且你有信心可以清理你造成的任何混亂,請查看/usr/local/etc/pkg/repos/FreeBSD.conf
. 但就我個人而言,我會使用監獄。此外,在系統上啟用 root ssh通常被認為是不好的做法。