首页
关于
Search
1
分享一些收集的Sync Key
5,508 阅读
2
mysql错误ERROR 1130 (HY000): Host 'localhost' is not allowed to connect to this MySQL server
1,634 阅读
3
对比win10系统上的三种软件包管理器scoop、chocolatey、winget
1,626 阅读
4
Resilio Sync 许可证下载
1,594 阅读
5
阿里云盘资源分享
1,249 阅读
前端
CSS
NodeJS
Javascript
小程序
Webpack
Vue
Typescript
Linux
软件教程
云服务器
脚本编程
技术扩展
Scoop
SSR
Youtube-dl
You-Get
Typecho
Annie
奇技淫巧
资源分享
Sync Key
随笔
疑难杂症
mysql
Docker
Python
Serverless
登录
Search
标签搜索
docker
K3S
powershell
scoop
webstorm
jQuery
webpack
typecho
mysql
windows10
linux
typescript
ssh
windows11
vue
git
Sync
fastify
winget
github
偏向技术
累计撰写
99
篇文章
累计收到
2
条评论
首页
栏目
前端
CSS
NodeJS
Javascript
小程序
Webpack
Vue
Typescript
Linux
软件教程
云服务器
脚本编程
技术扩展
Scoop
SSR
Youtube-dl
You-Get
Typecho
Annie
奇技淫巧
资源分享
Sync Key
随笔
疑难杂症
mysql
Docker
Python
Serverless
页面
关于
搜索到
2
篇与
Scoop
的结果
2022-03-30
Windows 包管理器 Scoop 现状
Scoop 经过差不多10年的时间,它沉寂之后又再次开始焕发了活力,由个人转向组织,朝着更加标准化、组织化、现代化的目标前进。
2022年03月30日
86 阅读
0 评论
0 点赞
2020-12-27
详解Scoop清单Manifests属性
Scoop下载安装应用是基于App Manifests描述的信息来执行的, #version 必填,指定安装应用程序的版本 ### 注释,单行字符串或字符串数组 #architecture 如果应用程序包含32位和64位版本,architecture字段可以用来包含这两种架构 #32bit | 64bit 包含特定于架构的指令,bin, checkver, extract_dir, hash, installer, pre_install, post_install, shortcuts, uninstaller, url, 和 msi(不推荐) #autoupdate 定义如何自动更新,除了autoupdate.note属性之外,所有属性都可以为architecture全局设置,也可以为architecture.64bit和architecture.32bit单独设置,全局属性可用于更新每个architecture属性,即,如果仅全局设置,则autoupdate.url可用于更新architecture.64bit.url或architecture.32bit.url url:"uri",用于生成新url的网址模板 scoop将通过在URL后面附加#/dl.7z或#/pngcrush.exe重命名文件(用于提取安装程序或重命名可执行文件的版本字符串) 支持捕获变量在新窗口打开 支持版本变量在新窗口打开 hash:"object",设置此属性以获取哈希值,而无需下载实际文件 哈希值可以通过以下方法直接提取(autoupdate.hash.mode): 对纯文本文件或网页使用RegEx(extract, predefined fosshub, sourceforge) 将JSONPath用于JSON文件(json) 将XPath用于XML文件(xpath) 对RDF文件使用摘要(rdf) 对Metalink使用下载头或.meta4(metalink) hash.url支持捕获变量、版本变量和url变量 属性说明 mode:"string|enum" extract:RegEx从纯文本文件或网页中提取(默认,可以省略) json:通过JSONPath从JSON文件中提取 xpath:XPath从XML文件中提取 rdf:从RDF文件中提取 metalink:从Metalink的标题或.meta4文件中提取 fosshub:自动。为FossHub预先定义 sourceforge:自动。为SourceForge预先定义 download:下载应用程序文件并在本地对其进行哈希处理(Fallback) url:"uri",用于下载RDF / JSON文件或提取哈希的URL模板 支持捕获变量在新窗口打开 支持版本变量在新窗口打开 支持url变量在新窗口打开 regex|find:"regex",RegEx表达式以提取哈希 默认值:^([a-fA-F0-9]+)$ and ([a-fA-F0-9]{32,128})[\x20\t]+.*$basename(?:[\x20\t]+\d+)? 支持捕获变量在新窗口打开 支持版本变量在新窗口打开 支持url变量在新窗口打开 支持hash变量在新窗口打开 jsonpath|jp:"jsonpath",JSONPath表达式提取哈希 支持捕获变量在新窗口打开 支持版本变量在新窗口打开 支持url变量在新窗口打开 xpath:"string",XPath表达式提取哈希 支持捕获变量在新窗口打开 支持版本变量在新窗口打开 支持url变量在新窗口打开 extract_dir:"string",选择更新extract_dir 支持捕获变量在新窗口打开 支持版本变量在新窗口打开 note:"string",运行autoupdate命令时显示的可选消息 #bin 程序(可执行文件或脚本)的字符串或字符串数组,可在用户的环境变量中使用 你可以创建一个与实际可执行文件名称不同的别名shim,并且允许将参数传递给可执行文件,而不仅仅是使用字符串,[ "program.exe", "alias", "--arguments" ] 但是,如果仅声明一个这样的shim,则必须确保将其封装在外部数组中,[ [ "program.exe", "alias" ] ],否则,它将被视为单独的shim #checkver 应用程序维护人员和开发人员可以使用bin/checkver工具来检查应用程序的更新版本。checkver属性在manifest中是一个正则表达式,可用于匹配应用程序首页中应用程序的当前稳定版本。属性有url和regex,checkver: "regex",用于在主页上查找版本 github:应用程序的Github存储库的URL url:可以找到版本的页面地址,支持版本变量在新窗口打开 regex|re:"regex",正则表达式,用于寻找版本 jsonpath|jp: "jsonpath",JSONPath表达式,用于寻找版本 xpath:"string",XPath表达式,用于寻找版本 reverse:“boolean”,是否与找到的最后一个匹配 replace:"string",将匹配值替换为计算值,支持版本变量在新窗口打开 useragent:"string",用来获取网页内容的用户代理(仅在fiddler中使用),支持版本变量在新窗口打开 #depends 应用程序的运行时依赖关系,它将自动安装。另请参见suggest(下文),以替代depends #description 字符串,包含对该应用程序的简短描述。如果程序名称与应用程序的文件名相同,则不要包含该程序的名称 #env_add_path 将此目录添加到用户路径(如果使用--global,则添加到系统路径)。该目录是相对于安装目录的,必须在安装目录内 #env_set 为用户(或系统,如果使用--global)设置一个或多个环境变量 #extract_dir 如果url指向压缩文件(支持.zip,.7z,.tar,.gz,.lzma和.lzh),则Scoop将从其中提取指定的目录 #extract_to 如果url指向压缩文件(支持.zip,.7z,.tar,.gz,.lzma和.lzh),则Scoop会将所有内容提取到指定的目录中 #hash url中的每个URL带有文件哈希的字符串或字符串数组。默认情况下,哈希是SHA256,但是您可以通过在哈希字符串前添加“ sha512:”,“ sha1:”或“ md5:”来使用SHA512,SHA1或MD5 #homepage 程序的主页,比如官网首页 #innosetup 如果安装程序基于InnoSetup,则设置为布尔值true(不带引号) #installer 运行非MSI安装程序的说明 file:安装程序可执行文件。对于installer,默认为上次下载的URL。必须为uninstaller指定 script:作为installer/uninstaller要执行的命令,而不是file的单行字符串或字符串数组 args:传递给安装程序的参数数组(可选) keep:"true",是否应在运行后保留安装程序(例如,将来用于卸载),如果省略或设置为任何其他值,则运行后将删除安装程序,在uninstaller指令中使用时,此选项将被忽略 #license 该程序的软件许可证的字符串或哈希值,对于知名许可证,请使用在spdx上找到的标识符,比如MIT,对于其他许可证,使用许可证的URL,如果URL不可用,请酌情使用“Freeware”,“Proprietary”,“Public Domain”,“Shareware”或“Unknown”,如果不同的文件具有不同的许可证,请使用(,)分隔单独的许可证,如果整个应用程序都是双重许可的,请使用(|)分隔单独的许可。 identifier:SPDX标识符,或适当的“Freeware”, “Proprietary”, “Public Domain”, “Shareware”, or “Unknown” url:对于非SPDX许可证,请包含许可证链接。也可以包含指向SPDX许可证的链接 如果很难确定所有不同的许可证,可以在SPDX列表的末尾添加省略号(...),如果既有开源许可证又没有开源许可证,请首先列出所有非开源许可证(例如,Freeware/Proprietary/Shareware)。 如果您无法确定该应用程序拥有什么许可证,请使用“Unknown”。 #notes 单行字符串或字符串数组,并在安装应用程序后显示一条消息。 #persist 目录和文件的字符串或字符串数组,用于保留在应用程序的数据目录中。 #post_install 安装应用程序后要执行的命令的单行字符串或字符串数组。可以使用$dir, $persist_dir, 和 $version等变量,具体详见说明在新窗口打开 #pre_install 与post_install相同的选项,但在安装应用程序之前执行。 #psmodule 作为powershell模块安装在~/scoop/modules目录下 name:必选,模块的名称,该名称应与提取目录中的至少一个文件匹配,以便PowerShell将其识别为模块。 #shortcuts 指定在开始菜单中可用的快捷方式值,该数组必须包含一个可执行文件/标签对。第三和第四元素是可选的。 i. 目标文件的路径[必填] ii. 快捷方式的名称(支持子目录:\)[必需] iii. 启动参数[可选] iv. 图标文件的路径[可选] #suggest 显示一条消息,提示提供补充功能的可选应用 ["Feature Name"] = [ "app1", "app2"... ],比如,"JDK": [ "extras/oraclejdk", "openjdk" ],如果已经安装了针对该功能建议的任何应用,则该功能将被视为“已实现”,用户将看不到任何建议 #uninstaller 与安装程序相同的选项,但运行file/script来卸载应用程序 #url 要下载的文件的URL。如果下载地址不止一个,则可以使用JSON数组,比如,"url": [ "http://example.org/program.zip", "http://example.org/dependencies.zip" ],下载地址支持HTTP, HTTPS 和 FTP协议 要更改下载的URL的文件名,可以将URL片段(以#开头)附加到URL。比如 "http://example.org/program.exe" -> "http://example.org/program.exe#/dl.7z" 请注意,该片段必须以#/开头才能起作用。 在上面的示例中,Scoop将下载program.exe,但将其保存为dl.7z,然后将使用7-Zip自动提取,此技术通常在Scoop清单中用于绕过可执行安装程序,这些安装程序可能具有不良的副作用,例如注册表更改,放置在安装目录之外的文件或管理员提升提示。 #cookie #内部可用变量 #捕获变量(Captured variables) 用于checkver.replace ${1}, ${2}, ${3}...,未命名的组 ${name1}, ${Name2}, ${NAME3},命名组 (?...), (?...), (?...)... 用于autoupdate $match1, $match2, $match3,未命名的组 $matchName1, $matchName2, $matchName3...,命名组 (?...), (?...), (?...)... 注意变量名中唯一的大写字符 #版本变量(Version variables) $version: 3.7.1 $underscoreVersion: 3_7_1 $dashVersion: 3-7-1 $cleanVersion: 371 $version(比如3.7.1.2)由(.)符号分割,并将值分配给: $majorVersion: 3 $minorVersion: 7 $patchVersion: 1 $buildVersion: 2 $matchHead:返回由(.)分隔的前两位或三位数,(比如 3.7.1-rc.1 = 3.7.1 , 3.7.1.2-rc.1 = 3.7.1 or 3.7-rc.1 = 3.7) $matchTail:返回$matchHead的其余部分,(比如 3.7.1-rc.1 = -rc.1 , 3.7.1.2-rc.1 = .2-rc.1 or 3.7-rc.1 = -rc.1) $preReleaseVersion:在(-)后面的所有字符, (比如. 3.7.1-rc.1 = rc.1) checkver属性中的每个捕获组都添加一个$matchX变量(命名组也被允许),比如使用正则表达式 v(?[\d.]+)\/(?[\d.]+) 匹配 v3.7.1/3.7,将返回: $match1 or $matchVersion: 3.7.1 $match2 or $matchShort: 3.7 #URL变量(URL variables) $url:autoupdate的url没有片段(#/dl.7z)[比如 http://example.com/path/file.exe $baseurl:autoupdate的url没有文件名和片段(#/dl.7z)[比如 http://example.com/path] $basename:autoupdate的url中的文件名,(忽略片段#/dl.7z) #哈希变量(Hash variables) $md5:([a-fA-F0-9]{32}),MD5哈希类型 $sha1:([a-fA-F0-9]{40}),SHA-1哈希类型 $sha256:([a-fA-F0-9]{64}),SHA-256哈希类型 $sha512:([a-fA-F0-9]{128}),SHA-512哈希类型 $checksum:([a-fA-F0-9]{32,128}),MD5,SHA-1,SHA-256或SHA-512哈希类型 $base64:([a-zA-Z0-9+\/=]{24,88}),BASE64编码的checksum(可以是MD5,SHA-1,SHA-256或SHA-512) #持久性数据 如果您需要存储在更新之间应保留的数据,则应使用~/scoop/persist//。在清单内部,$persist_dir变量中提供了数据目录的路径。 目录和文件可以添加到应用清单中的persist。持久数据通过目录连接或硬链接从已安装的应用程序目录链接到数据目录。 在安装过程中,所有持久数据都将复制到数据目录中并链接到该目录。 如果只需要保存一个目录或一个文件,则persist可以是一个字符串,也可以是多个目录或多个文件的数组。 [可选] 目录或文件在数据目录中可以具有不同的名称 json复制 { "persist": [ "keeps_its_name", ["original_name", "new_name_inside_the_data_dir"] ] } 123456 卸载应用程序时,有一个用于清除所有持久性数据的标志。默认情况下,数据将一直保留到您将其删除为止。 powershell复制 scoop uninstall -p nodejs 1 #安装脚本Pre and Post install scripts #变量 以下变量可在pre_install / post_install脚本中使用 变量 示例 说明 $dir C:\Users\username\scoop\apps\$app\current $original_dir C:\Users\username\scoop\apps\$app\1.2.3 $persist_dir C:\Users\username\scoop\persist\$app $manifest @{homepage=https://example.com/; description=Example app; version=2.4.1; url=http://example.com/app-setup.exe;... 反序列化的清单(PowerShell对象) $version 1.2.3 正在安装的版本 $app exampleapp 应用程序名称(清单文件名称) $architecture 64bit $scoopdir C:\Users\username\scoop Scoop安装目录 $oldscoopdir C:\Users\username\AppData\Local\scoop $globaldir C:\ProgramData\scoop $cachedir C:\Users\username\scoop\cache $bucketsdir C:\Users\username\scoop\buckets $modulesdir C:\Users\username\scoop\modules $cfgpath ~/.scoop Scoop配置路径 $cfg {SCOOP_BRANCH, SCOOP_REPO, lastupdate} Scoop配置(Powershell对象) #方法 appdir:参考另一个独家应用程序。例如,要检查是否安装了另一个应用程序,可以使用: powershell复制 "post_install": [ "if (Test-Path \"$(appdir otherapp)\\current\\otherapp.exe\") { <# .. do something .. #> }" 1 #其他 假设有一个应用app,版本为1.0.0,下载地址为……/setup.exe 在pre_install和post_install中 powershell复制 $dir = C:\users\<name>\scoop\apps\<app>\1.0.0 $fname = setup.exe $persist_dir = C:\users\<name>\scoop\persist\app 123
2020年12月27日
266 阅读
0 评论
2 点赞