怎么用7zip解压安装包(进阶教程)

首页常识更新时间:2023-10-03 15:15:35
1 概述

在前面的 win10 快速搭建各种开发环境中,我们已经学会了如何安装 Scoop 以及 Scoop 的基本使用,接下来让我们学习下 Scoop 的一些高级用法。

2 帮助命令

Scoop 命令的信息是内置的,所以我们可以通过下面命令查看内置命令一些信息及用法:

scoophelp

运行将会输出下面内容:

alias管理别名 bucket管理软件源 cache显示或清除下载缓存 checkup检查潜在问题 cleanup通过删除旧版本来清理应用程序 config获取或设置配置值 create创建一个自定义应用程序清单 depends列出应用程序的依赖项 export导出(一个可导入的)已安装的应用程序列表 help显示命令的帮助 hold禁用应用程序更新 home打开应用程序主页 info显示应用程序的信息 install安装应用程序 list已安装的应用程序列表 prefix返回指定应用程序的路径 reset切换应用程序版本 search搜索可用的应用程序 status显示状态和检查新的应用程序版本 unhold启用应用程序更新 uninstall卸载应用程序 update更新应用程序或Scoop本身 virustotal在virustotal.com上寻找应用程序的哈希 which定位shim/可执行文件(类似于Linux上的'which')

要查看特定命令的帮助,请运行下面命令:

scoophelp<command>

比如想要查看 cache 命令怎样使用,可以运行下面命令:

scoophelpcache3 卸载 Scoop

如果你想卸载 Scoop 和所有与 Scoop 一起安装的程序,你可以运行下面命令:

scoopuninstallscoop4 App Manifest4.1 简介

App Manifest 表示应用程序清单,它是一个 JSON 文件,定义了下载、校验、安装软件等信息,一个 App Manifest 就代表了一个软件,许多 App Mainifest 就组成了 Bucket,可以表示为一个软件仓库。

如果已知 App Manifest 文件位置,你还可以运行下面命令来安装软件:

scoopinstallshared/files/scoop/app.json #或者 scoopinstallhttps://gist.github.com/xxxx/xxxx/raw/app.json4.2 属性4.2.1 必须属性

version:表示应用程序版本信息。

4.2.2 可选属性

##: 包含注释的单行字符串或字符串数组。

architecture:如果应用程序有 32 位和 64 位版本,可以使用这个来表示,它有两个子属性,一个是 32bit ,一个是64bit,这两个属性都可以使用 bin、checkver、extract_dir、hash、installer、pre_install、post_install、shortcuts、uninstaller、url等属性,示例如下:

"architecture":{ "64bit":{ "url":"https://7-Zip.org/a/7z1900-x64.msi", "hash":"a7803233eedb6a4b59b3024ccf9292a6fffb94507dc998aa67c5b745d197a5dc" }, "32bit":{ "url":"https://7-zip.org/a/7z1900.msi", "hash":"b49d55a52bc0eab14947c8982c413d9be141c337da1368a24aa0484cbb5e89cd" } },

autoupdate:定义如何自动更新 App Manifest 文件,示例如下:

"checkver":{ "re":"/(?<type>early_access|GA)/(?<path>jdk(?<major>[\\d.] )(?:.*)?/(?<build>[\\d] )(?:/GPL|/binaries)?)/(?<file>openjdk-(?<version>[\\d.] )(?<ea>-ea)?(?:\\ [\\d] )?_windows-x64_bin.(zip|tar.gz))", "replace":"${version}-${build}${ea}" }, "autoupdate":{ "architecture":{ "64bit":{ "url":"https://download.java.net/java/$matchType/$matchPath/$matchFile" } }, "hash":{ "url":"$url.sha256" }, "extract_dir":"jdk-$matchVersion" }

bin:应用程序可执行文件。您还可以创建别名 shim,它使用与实际可执行文件不同的名称,并(可选)将参数传递给可执行文件,格式为: [ "program.exe", "alias", "--arguments" ],示例如下:

"bin":[ "busybox.exe", [ "busybox.exe", "ar", "ar" ], [ "busybox.exe", "arch", "arch" ] ]

checkver:应用维护者和开发者可以使用 scoop/bin/checkver 目录下的 checkver.ps1 工具来检查应用版本。checkver 清单中的属性是一个正则表达式,可用于匹配应用主页中应用的当前稳定版本,示例如下:

"checkver":{ "url":"https://golang.org/dl/", "regex":"go([\\d.] )\\.windows-" },

depends:将自动安装应用程序的运行时依赖项。

description:对应用程序的描述,不要包含程序的名称,如果它与应用程序的文件名相同。

env_add_path: 将此目录添加到用户路径或系统路径,该目录是相对于安装目录的,并且必须在安装目录中。

env_set: 为用户或系统,设置一个或多个环境变量,示例如下:

"env_set":{ "GOROOT":"$dir" },

extract_dir: 如果 url 指向一个压缩文件(支持 .zip、.7z、.tar、.gz、.lzma 和 .lzh),Scoop 将只提取其中指定的目录。

extract_to: 如果 url 指向一个压缩文件(.zip、.7z、.tar、.gz、.lzma 和 .lzh 支持),Scoop 会将所有内容提取到指定的目录。示例如下:

"extract_to":[ "", "Plugins" ],

hash: 一个字符串或字符串数组,其中每个 URL 都有一个文件哈希 url。默认情况下,散列是 SHA256,但您可以通过在散列字符串前加上 sha512:、sha1:或md5:前缀来使用 SHA512、SHA1 或 MD5。

homepage:程序的主页。

innosetup:true 如果安装程序基于 InnoSetup,则设置该值。

installer:运行非 MSI 安装程序的说明。

license:程序软件许可证,对于众所周知的许可证,请使用 https://spdx.org/licenses/ 上的标识符,对于其他许可证,请使用许可证的 URL(如果可用)。

notes:单行字符串或字符串数组,在安装应用程序后显示一条消息。

persist: 应用程序数据持久化。

post_install:安装应用程序后要执行的命令,可以使用变量,如 $dir,$persist_dir和 $version。

pre_install: 与post_install 相同的选项,但在安装应用程序之前执行。

psmodule:作为 PowerShell 模块安装在 ~/scoop/modules。name(必需):模块的名称,该名称应至少与解压目录中的一个文件匹配,以便 PowerShell 将其识别为模块。

shortcuts:在开始菜单中添加快捷方式。该数组必须包含一个可执行文件/标签对。第三个和第四个元素是可选的。

  1. 目标文件的路径,必填。
  2. 快捷方式的名称(支持子目录:<AppsSubDir>\\<AppShortcut> 例如 sysinternals),必需。
  3. 启动参数, 可选。
  4. 图标文件的路径, 可选。

suggest:显示一条建议消息。

uninstaller:与installer相同的选项,运行文件/脚本以卸载应用程序。

url:要下载的文件的 URL。如果有多个 URL,您可以使用 JSON 数组。

4.3 示例

我们可以看下 7zip 这个软件的 App Manifest 是怎样的,7zip 放在 main[1] 这个 git 仓库的 bucket 文件夹下,它的文件名是 7zip.json,文件内容如下:

{ "version":"19.00", "description":"Amulti-formatfilearchiverwithhighcompressionratios", "homepage":"https://www.7-zip.org/", "license":{ "identifier":"Freeware,LGPL-2.0-only,BSD-3-Clause", "url":"https://www.7-zip.org/license.txt" }, "architecture":{ "64bit":{ "url":"https://7-zip.org/a/7z1900-x64.msi", "hash":"a7803233eedb6a4b59b3024ccf9292a6fffb94507dc998aa67c5b745d197a5dc" }, "32bit":{ "url":"https://7-zip.org/a/7z1900.msi", "hash":"b49d55a52bc0eab14947c8982c413d9be141c337da1368a24aa0484cbb5e89cd" } }, "extract_dir":"Files\\7-Zip", "bin":"7z.exe", "shortcuts":[ [ "7zFM.exe", "7-Zip" ] ], "checkver":{ "url":"https://www.7-zip.org/download.html", "regex":"Download7-Zip([\\d.] )" }, "autoupdate":{ "architecture":{ "64bit":{ "url":"https://7-zip.org/a/7z$cleanVersion-x64.msi" }, "32bit":{ "url":"https://7-zip.org/a/7z$cleanVersion.msi" } } } }

该文件描述从哪里下载 7zip 这个软件,怎样校验下载的软件,怎样进行安装等,一般配置 version、homepage、architecture、url、hash 、bin 这几个属性就可以了,其它的是可选的。

App Manifest 开始编写的时候,需要到官网,把软件下载下来,然后本机查看 hash,默认为 sha256 码,也有 md5 和 sha1 形式的,命令如下:

certutil-hashfile[file]sha256 certutil-hashfile[file]md5 certutil-hashfile[file]sha1

获取到软件的 hash 后直接填入到 App Manifest。

url 是比较难处理的。简单说,开源软件最方便,很多可以开箱即用,而非开源的不少就特别繁琐,有的甚至处理不了。现在简单介绍下一般情况:

5 Bucket5.1 简介

Bucket 中文意思是,在 Scoop 中,Buckets 是应用程序的集合,也可以理解成一个软件配置清单仓库。更具体地说,Buckets 是一个 Git 存储库,其中包含描述如何安装应用程序的 JSON 配置清单。

默认情况下,当您运行 scoop install <app>,它会在 main 中查找,但也可以从其他 Bucket 安装。

Scoop 支持添加其他 Bucket,任何人都可以设置自己的 Bucket,其他人可以从这个 Bucket 添加和安装——他们只需要知道存储 Bucket 的 Git 存储库的位置。

5.2 查看已知 Bucket

查看已知 Bucket,即 Scoop 已经知道这个桶在哪里,你可以运行下面命令:

scoopbucketknown5.3 添加其它 Bucket

如果 Bucket 是 Scoop 已知的,你可以运行下面命令:

scoopbucketadd<bucketname> #实例添加extrasbucket scoopbucketaddextras

如果 Bucket 对于 Scoop 是未知的,你必须指定它的位置,即 Git 存储库,你可以运行下面命令:

scoopbucketadd<bucketname><gitlocation> #实例添加extrasbucket scoopbucketaddextrashttps://GitHub.com/lukesampson/scoop-extras.git5.4 创建 Bucket

Scoop bucket 的创建的关键步骤如下:

  1. 使用 Bucket 模板创建一个 git 项目。
  2. 创建 App Manifest 文件。
  3. 提交文件。
  4. 将项目上传到 Gitee 或 GitHub。

Bucket 已经有了一套比较好的模板,这是当前 Scoop 社区的 Leader 写的 模板[2],我们可以直接下载下来使用,其他文件基本不用改动,将自定义的 App Manifest 放在 bucket 文件夹里面就行,App Manifest 配置完成后,提交代码,然后将将项目 push 到 Gitee 或 GitHub,然后本地添加这个 Bucket,添加命令如下:

scoopbucketadd<项目名><项目git地址>6 实战:创建自己的 Bucket 并添加 chiner 软件6.1 简介

chiner 原名叫 PDMan,它是由国人开发的一款非常好用的数据库建模软件,代码开源,目前托管在码云上,目前 Scoop 的 Bucket 没有添加这个软件,所以让我们来学习下怎样添加这个软件到自己的 Bucket仓库。

6.2 配置 Bucket

1.登录码云,创建一个仓库。

2.选择点击导入。

3.仓库 URL 配置为 Scoop 的模板 URL,然后配置仓库名称,配置完成后选择导入。

4.仓库创建好了,然后复制 URL,在命令运行 git clone <url>。

5.项目下载完成后,我们需要下载 chiner 这个软件,然后运行下面命令获取 hash:

certutil-hashfileCHINER-win_v3.3.0.exesha256

6.进入项目目录,在 bucket目录里创建 chiner.json文件,文件内容如下:

{ "version":"3.3.0", "description":"元数建模,一款丰富数据库生态,独立于具体数据库之外的,数据库关系模型设计平台。", "homepage":"http://www.pdman.cn/#/", "license":"MIT", "architecture":{ "32bit":{ "url":"http://chiner-release.httpchk.com/CHINER-win_v3.3.0.exe#/dl.7z", "hash":"d7ec91e6b820dcf269351829267f5c33c791d81b132bdcc4f15c798724376518", "pre_install":[ "Expand-7zipArchive\"$dir\\`$PLUGINSDIR\\app-32.7z\"\"$dir\"", "Remove-Item\"$dir\\`$*\",\"$dir\\Uninstall*\"-Recurse" ] } }, "bin":"CHINER元数建模.exe", "shortcuts":[ [ "CHINER元数建模.exe", "CHINER元数建模" ] ] }

bin 属性获取,你可以解压 chiner 这个软件,然后再解压 app-32.7z,解压后里面的可执行文件就是 bin 的值。

7.保存文件,然后通过下面命令提交文件并推送到 Gitee:

gitadd* gitcommit-m"addchinerapp" gitpush

6.3 添加 Bucket 并安装软件

安装成功后,在菜单打开该软件。

7 总结

Scoop 还有一些高级用法,我这里并没有列出来,那些用法一般不会用到,如果大家有兴趣,可以去看下官方文档。

参考资料

[1] main: https://github.com/ScoopInstaller/Main

[2] 模板: https://github.com/Ash258/GenericBucket

,
展开阅读全文
推荐内容
热门内容
热门文章

© 2007-2022 http://www.anhuiqq.cn,All Rights Reserved.