假设有一个可用的包文件 image-1.0.0.tar.gz,可以通过 Octave 提示符使用以下命令安装:
pkg install image-1.0.0.tar.gz
如果包安装成功,提示符将不会有任何输出;但如果在安装过程中出现警告或错误,则会报告相关信息。可以通过在 pkg install 命令后列出多个包文件名来同时安装多个包。如果已安装了不同版本的同一包,则在安装新版本之前会先移除旧版本。这使得升级和降级包版本变得容易,但也意味着无法同时安装同一包的多个版本。
要查看已安装的包,请输入:
pkg list -| Package Name | Version | Installation directory -| --------------+---------+----------------------- -| image *| 1.0.0 | /home/jwe/octave/image-1.0.0
在此例中,已安装了 image 包的 1.0.0 版本。包名称旁边的 '*' 字符表示该 image 包已加载并可供使用。
可以使用 pkg uninstall 命令从系统中移除包,如下所示:
pkg uninstall image
如果包成功移除,提示符将不会有任何输出;但如果出现警告或错误则会报告。需要注意的是,安装时使用的包文件在移除时并非必需,移除时只能使用 pkg list 所报告的包名称。可以通过在 pkg uninstall 命令后写入多个包名称来同时移除多个包。
为尽量减少包之间的代码重复,一个包可能依赖于另一个包。如果某个包依赖于另一个包,在安装时会检查被依赖的包是否已安装。如果尚未安装,则会报告错误并且该包不会安装。可以通过向 pkg install 命令传递 -nodeps 标志来禁用此行为:
pkg install -nodeps my_package_with_dependencies.tar.gz
由于已安装的包期望其依赖项也已安装,因此它可能无法正常运行。因此,不建议禁用依赖检查。
command ¶command pkg_name ¶command pkg_name1 pkg_name2 … ¶command option1 … pkg_name1 … ¶[out1, …] = pkg (command, …) ¶管理或查询 Octave 的包(一组附加函数)。
根据 command 的值以及请求的返回参数数量,pkg 可用于执行多项任务。command 的可能取值包括:
在 Octave 包索引中搜索包含指定搜索词的包。这可能需要互联网连接和 cURL 库。
pkg search foo bar baz
显示描述中包含所有搜索词的包。
搜索词不区分大小写,也可以是正则表达式。例如,
pkg search "[aeiou]{4,}"
显示描述中包含四个或更多连续元音的所有包。
选项 -all 的用法如下:
pkg search -all
显示 Octave 包索引上所有可用的包(不仅仅是可以通过 pkg 命令安装的那些)。
默认情况下,Octave 包索引在每个 Octave 会话中只下载一次,以提高性能并减少重复搜索时对索引服务器的负载。可以使用 -refresh 选项强制更新索引:
pkg search -all -refresh foo
如果提供了输出变量,例如:
mypackages = pkg ("search", "foo")
那么 pkg search 只返回那些与搜索词匹配且可以通过 pkg install 安装的包名称。
安装指定的包。例如,以下每个命令都可能安装 pkgname 包:
pkg install pkgname pkg install 'pkgname-1.0.0.tar.gz' pkg install 'https://somewebsite.org/pkgname-1.0.0.tar.gz'
pkg install 之后参数的解析顺序如下:
pkgname 是一个本地文件,Octave 将安装它。
pkgname 看起来像一个 URL,Octave 将下载并安装它。
pkgname 的包,如果找到,则下载并安装其最新版本。如果无法访问 Octave 包索引,可能会使用本地缓存的索引版本。Octave 包索引在每个 Octave 会话中只下载一次(除非使用 -refresh 选项请求刷新索引)。
在线访问需要互联网连接和 cURL 库。
无支持:GNU Octave 社区不对任何已安装的包提供支持。要获取支持或报告错误,您需要直接联系已安装包的维护者(运行 pkg describe 以获取信息)。
pkg install 接受以下选项:
-nodeps禁用依赖项检查。使用此选项,即使包依赖于系统中未安装的另一个包,也可以安装该包。请谨慎使用此选项。
-local强制本地安装(包仅对当前用户可用),即使 Octave 是以管理员/root 权限运行的。
-global强制全局安装(包对所有用户可用),即使 Octave 不是以管理员/root 权限运行的。用户必须对全局包存储位置具有写入权限。
-verbose在执行时打印所有命令的输出。
-refresh强制从在线索引更新缓存的包数据库。默认情况下,Octave 在每个会话中试图只下载一次 Octave 包索引。此选项强制刷新索引,即使它已经在当前 Octave 会话中被下载过。-refresh 选项适用于 install、search 和 update 命令。
-forge-forge 选项强制从 Octave 包索引安装包。它不能用于从 URL 或本地文件安装包。它隐含了 -refresh。
如果包压缩包中包含 configure 脚本,它会在包安装期间运行。如果其中包含 Makefile,则默认使用 make 命令。可以通过环境变量 MAKE 覆盖默认命令。某些 Octave 包可能需要 GNU make 来运行。
卸载已命名的包。例如:
pkg uninstall image
如果包成功卸载,提示符将不会有任何输出;但如果出现警告或错误则会报告。可以通过在 pkg uninstall 命令后写入多个包名称来同时卸载多个包。与 install 命令不同,-nodeps 标志会忽略依赖项检查并尝试卸载所有指定的包,即使其他已安装的包依赖于它们。
加载已命名的包。例如:
pkg load image
卸载已命名的包。例如:
pkg unload image
列出当前已安装的包。例如:
pkg list
如果提供了可选的包名称,则只显示这些包的信息。例如:
pkg list image control
可以通过选项 -forge 列出 Octave 包索引上所有可用的包:
pkg list -forge
选项 -forge 列出 Octave 包索引上所有可以通过 pkg 命令安装的包。这需要互联网连接和 cURL 库。这还会更新 Octave 包索引的本地缓存文件。调用
octave_packages = pkg ("list", "-forge")
等同于调用
octave_packages = pkg ("search", "-refresh", "-all")
显示已安装包的简短描述。使用选项 "-verbose" 还可以列出包所提供的函数。例如:
pkg describe -verbose
描述所有已安装的包及其提供的函数。
可以将结果限制为一组特定的包:
## 描述 control 和 signal 包 pkg describe control signal
如果请求一个输出参数,则返回一个包含每个包描述和函数列表的元胞数组结构体,而不是在屏幕上打印输出:
desc = pkg ("describe", "secs1d", "image")
如果所请求的包中有任何一个未安装,pkg 将返回错误,除非请求了第二个输出参数:
[desc, flag] = pkg ("describe", "secs1d", "image")
flag 对于每个命名的包分别取 "Not installed"(未安装)、"Loaded"(已加载)或 "Not loaded"(未加载)之一。
设置安装前缀目录。例如:
pkg prefix ~/my_octave_packages
将安装前缀设置为 ~/my_octave_packages。
包将安装在此目录中。
指定输出参数则返回当前的安装前缀。例如:
pfx = pkg ("prefix")
可以通过额外参数独立指定安装架构相关文件的位置。例如:
pkg prefix ~/my_octave_packages ~/my_arch_dep_pkgs
设置用于查找本地已安装包信息的文件。本地已安装包是指那些通常仅对当前用户可用的包。例如:
pkg local_list ~/.octave_packages
使用以下命令获取 local_list 的当前值:
pkg local_list
设置用于查找全局已安装包信息的文件。全局已安装包是指那些通常对所有用户可用的包。例如:
pkg global_list /usr/share/octave/site/api-v59/octave_packages
使用以下命令获取 global_list 的当前值:
pkg global_list
构建一个或多个包的二进制形式。生成的二进制文件本身就是一个 Octave 包,可以使用 pkg 正常安装。例如:
pkg build builddir image-1.0.0.tar.gz ...
其中 builddir 是构建二进制包的目录。选项 -verbose 和 -nodeps 会被遵循,而所有其他选项将被忽略。
从已安装的全局和本地包重建包数据库。这可以在包数据库损坏的情况下使用。
执行指定包所提供的所有函数中包含的内置自测试。例如:
pkg test image
版权所有 © 2024-2026 Octave中文网
ICP备案/许可证号:黑ICP备2024030411号-2