![如何在 freenas (freebsd) 上进行 pkg 升级](https://linux22.com/image/91848/%E5%A6%82%E4%BD%95%E5%9C%A8%20freenas%20(freebsd)%20%E4%B8%8A%E8%BF%9B%E8%A1%8C%20pkg%20%E5%8D%87%E7%BA%A7.png)
我在一台新服务器上安装了 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
}
答案1
您实际上不应该在主 FreeNAS 主机上使用 shell,因此pkg
存储库被禁用。
如果你想在机器上安装 shell,你应该考虑创建一个监狱(如轻量级虚拟机)并使用它进行 shell 访问。
如果你真的想要pkg
在 FreeNAS 主主机上使用并且您有信心可以清理您造成的任何混乱,请查看/usr/local/etc/pkg/repos/FreeBSD.conf
.但就我个人而言,我会使用监狱。
还有,它是通常被认为是不好的做法在系统上启用 root ssh。