Documentation
¶
Index ¶
- type APTPackageVerifier
- func (v *APTPackageVerifier) CalculateHash(filePath string, hashType string) (string, error)
- func (v *APTPackageVerifier) GetPackageInfo(pkgFile string) (PackageInfo, error)
- func (v *APTPackageVerifier) VerifyDirectory(dir string, pkgName string) ([]string, error)
- func (v *APTPackageVerifier) VerifyPackage(pkgFile string, pkgInfo PackageInfo) error
- type AptDownloader
- func (d *AptDownloader) Download(ctx context.Context, pkgName string, destDir string) error
- func (d *AptDownloader) DownloadMultiple(ctx context.Context, pkgNames []string, destDir string) error
- func (d *AptDownloader) GetDependencies(ctx context.Context, pkgName string) ([]string, error)
- func (d *AptDownloader) GetManagerName() string
- func (d *AptDownloader) ListDownloadedFiles(destDir string) ([]string, error)
- func (d *AptDownloader) VerifyDownload(ctx context.Context, pkgName string, destDir string) error
- type DefaultPackageVerifier
- func (v *DefaultPackageVerifier) CalculateHash(filePath string, hashType string) (string, error)
- func (v *DefaultPackageVerifier) GetPackageInfo(pkgFile string) (PackageInfo, error)
- func (v *DefaultPackageVerifier) VerifyDirectory(dir string, pkgName string) ([]string, error)
- func (v *DefaultPackageVerifier) VerifyPackage(pkgFile string, pkgInfo PackageInfo) error
- type Downloader
- type DownloaderFactory
- func (f *DownloaderFactory) GetDownloader(managerName string, config *glpm.ManagerConfig, architecture string) (Downloader, error)
- func (f *DownloaderFactory) GetHTTPDownloader(managerName string, architecture string) (Downloader, error)
- func (f *DownloaderFactory) GetHTTPDownloaderWithConfig(managerName string, architecture string, repoConfig *RepositoryConfig) (Downloader, error)
- type HTTPDownloader
- func (h *HTTPDownloader) Download(ctx context.Context, pkgName string, destDir string) error
- func (h *HTTPDownloader) GetDependencies(ctx context.Context, pkgName string) ([]string, error)
- func (h *HTTPDownloader) GetManagerName() string
- func (h *HTTPDownloader) ListDownloadedFiles(destDir string) ([]string, error)
- func (h *HTTPDownloader) VerifyDownload(ctx context.Context, pkgName string, destDir string) error
- type HTTPRecursiveDownloader
- type PackageInfo
- type PackageMetadata
- type PackageValidationResult
- type PackageVerifier
- type PackageVerifierFactory
- type RecursiveDownloader
- func (rd *RecursiveDownloader) CollectDependencies(ctx context.Context, pkgName string) ([]string, error)
- func (rd *RecursiveDownloader) DeduplicateDependencies(deps []string) []string
- func (rd *RecursiveDownloader) DownloadPackageWithDependencies(ctx context.Context, pkgName string, destDir string) error
- func (rd *RecursiveDownloader) DownloadPackageWithDependenciesWithMode(ctx context.Context, pkgName string, destDir string, isOfflineMode bool) error
- type RepositoryConfig
- type RepositoryInfo
- type RepositoryManager
- func (m *RepositoryManager) GetRepositoryConfig(systemType, version, arch string) *RepositoryConfig
- func (m *RepositoryManager) GetRepositoryConfigWithCustomURL(systemType, version, arch, customURL string) *RepositoryConfig
- func (m *RepositoryManager) GetRepositoryConfigWithHeaders(systemType, version, arch, customURL string, enableHeaders bool) *RepositoryConfig
- func (m *RepositoryManager) ListSupportedSystems() []RepositoryInfo
- type SourceEntry
- type SourcesConfig
- type ValidatePackageResults
- type YUMChecksum
- type YUMData
- type YUMHTTPDownloader
- func (h *YUMHTTPDownloader) Download(ctx context.Context, pkgName string, destDir string) error
- func (h *YUMHTTPDownloader) GetDependencies(ctx context.Context, pkgName string) ([]string, error)
- func (h *YUMHTTPDownloader) GetManagerName() string
- func (h *YUMHTTPDownloader) ListDownloadedFiles(destDir string) ([]string, error)
- func (h *YUMHTTPDownloader) VerifyDownload(ctx context.Context, pkgName string, destDir string) error
- type YUMLocation
- type YUMPackage
- type YUMPackageLocation
- type YUMPackageMetadata
- type YUMPackageVerifier
- func (v *YUMPackageVerifier) CalculateHash(filePath string, hashType string) (string, error)
- func (v *YUMPackageVerifier) GetPackageInfo(pkgFile string) (PackageInfo, error)
- func (v *YUMPackageVerifier) VerifyDirectory(dir string, pkgName string) ([]string, error)
- func (v *YUMPackageVerifier) VerifyPackage(pkgFile string, pkgInfo PackageInfo) error
- type YUMPrimary
- type YUMRepomd
- type YUMRequire
- type YUMVersion
- type YumDownloader
- func (d *YumDownloader) Download(ctx context.Context, pkgName string, destDir string) error
- func (d *YumDownloader) GetDependencies(ctx context.Context, pkgName string) ([]string, error)
- func (d *YumDownloader) GetManagerName() string
- func (d *YumDownloader) ListDownloadedFiles(destDir string) ([]string, error)
- func (d *YumDownloader) VerifyDownload(ctx context.Context, pkgName string, destDir string) error
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type APTPackageVerifier ¶
type APTPackageVerifier struct {
// contains filtered or unexported fields
}
APTPackageVerifier APT包专用验证器
func NewAPTPackageVerifier ¶
func NewAPTPackageVerifier(config *glpm.ManagerConfig) *APTPackageVerifier
NewAPTPackageVerifier 创建APT包验证器
func (*APTPackageVerifier) CalculateHash ¶
func (v *APTPackageVerifier) CalculateHash(filePath string, hashType string) (string, error)
CalculateHash 计算文件哈希值
func (*APTPackageVerifier) GetPackageInfo ¶
func (v *APTPackageVerifier) GetPackageInfo(pkgFile string) (PackageInfo, error)
GetPackageInfo 获取DEB包信息
func (*APTPackageVerifier) VerifyDirectory ¶
func (v *APTPackageVerifier) VerifyDirectory(dir string, pkgName string) ([]string, error)
VerifyDirectory 验证目录中的所有包文件
func (*APTPackageVerifier) VerifyPackage ¶
func (v *APTPackageVerifier) VerifyPackage(pkgFile string, pkgInfo PackageInfo) error
VerifyPackage 验证APT包
type AptDownloader ¶
type AptDownloader struct {
// contains filtered or unexported fields
}
AptDownloader APT包下载器
func NewAptDownloader ¶
func NewAptDownloader(config *glpm.ManagerConfig, architecture string) *AptDownloader
NewAptDownloader 创建APT下载器实例
func (*AptDownloader) DownloadMultiple ¶
func (d *AptDownloader) DownloadMultiple(ctx context.Context, pkgNames []string, destDir string) error
DownloadMultiple 下载多个包(并发下载)
func (*AptDownloader) GetDependencies ¶
GetDependencies 获取指定包的所有依赖
func (*AptDownloader) GetManagerName ¶
func (d *AptDownloader) GetManagerName() string
GetManagerName 获取包管理器名称
func (*AptDownloader) ListDownloadedFiles ¶
func (d *AptDownloader) ListDownloadedFiles(destDir string) ([]string, error)
ListDownloadedFiles 列出已下载的文件
func (*AptDownloader) VerifyDownload ¶
VerifyDownload 验证已下载的包
type DefaultPackageVerifier ¶
type DefaultPackageVerifier struct{}
DefaultPackageVerifier 默认包验证器
func NewDefaultPackageVerifier ¶
func NewDefaultPackageVerifier() *DefaultPackageVerifier
NewDefaultPackageVerifier 创建默认包验证器
func (*DefaultPackageVerifier) CalculateHash ¶
func (v *DefaultPackageVerifier) CalculateHash(filePath string, hashType string) (string, error)
CalculateHash 计算文件哈希值
func (*DefaultPackageVerifier) GetPackageInfo ¶
func (v *DefaultPackageVerifier) GetPackageInfo(pkgFile string) (PackageInfo, error)
GetPackageInfo 获取包信息
func (*DefaultPackageVerifier) VerifyDirectory ¶
func (v *DefaultPackageVerifier) VerifyDirectory(dir string, pkgName string) ([]string, error)
VerifyDirectory 验证目录中的所有包文件
func (*DefaultPackageVerifier) VerifyPackage ¶
func (v *DefaultPackageVerifier) VerifyPackage(pkgFile string, pkgInfo PackageInfo) error
VerifyPackage 验证包文件
type Downloader ¶
type Downloader interface {
// Download 下载指定包到指定目录
Download(ctx context.Context, pkgName string, destDir string) error
// GetDependencies 获取指定包的所有依赖
GetDependencies(ctx context.Context, pkgName string) ([]string, error)
// GetManagerName 获取包管理器名称
GetManagerName() string
// VerifyDownload 验证已下载的包
VerifyDownload(ctx context.Context, pkgName string, destDir string) error
// ListDownloadedFiles 列出已下载的文件
ListDownloadedFiles(destDir string) ([]string, error)
}
Downloader 定义包下载器接口
type DownloaderFactory ¶
type DownloaderFactory struct{}
DownloaderFactory 下载器工厂
func NewDownloaderFactory ¶
func NewDownloaderFactory() *DownloaderFactory
NewDownloaderFactory 创建下载器工厂实例
func (*DownloaderFactory) GetDownloader ¶
func (f *DownloaderFactory) GetDownloader(managerName string, config *glpm.ManagerConfig, architecture string) (Downloader, error)
GetDownloader 获取指定类型的下载器
func (*DownloaderFactory) GetHTTPDownloader ¶ added in v1.3.1
func (f *DownloaderFactory) GetHTTPDownloader(managerName string, architecture string) (Downloader, error)
GetHTTPDownloader 获取HTTP下载器(跨平台)
func (*DownloaderFactory) GetHTTPDownloaderWithConfig ¶ added in v1.3.1
func (f *DownloaderFactory) GetHTTPDownloaderWithConfig(managerName string, architecture string, repoConfig *RepositoryConfig) (Downloader, error)
GetHTTPDownloaderWithConfig 使用指定配置创建HTTP下载器
type HTTPDownloader ¶ added in v1.3.1
type HTTPDownloader struct {
// contains filtered or unexported fields
}
HTTPDownloader 基于HTTP协议的跨平台下载器 支持在Windows/Linux/macOS上直接从源仓库下载包文件
func NewHTTPDownloader ¶ added in v1.3.1
func NewHTTPDownloader(architecture string, repoConfig *RepositoryConfig) *HTTPDownloader
NewHTTPDownloader 创建HTTP下载器
func (*HTTPDownloader) GetDependencies ¶ added in v1.3.1
GetDependencies 获取包的依赖列表
func (*HTTPDownloader) GetManagerName ¶ added in v1.3.1
func (h *HTTPDownloader) GetManagerName() string
GetManagerName 获取管理器名称
func (*HTTPDownloader) ListDownloadedFiles ¶ added in v1.3.1
func (h *HTTPDownloader) ListDownloadedFiles(destDir string) ([]string, error)
ListDownloadedFiles 列出已下载的文件
func (*HTTPDownloader) VerifyDownload ¶ added in v1.3.1
VerifyDownload 验证已下载的包
type HTTPRecursiveDownloader ¶ added in v1.3.1
type HTTPRecursiveDownloader struct {
// contains filtered or unexported fields
}
HTTPRecursiveDownloader HTTP模式下的递归依赖下载器
func NewHTTPRecursiveDownloader ¶ added in v1.3.1
func NewHTTPRecursiveDownloader(downloader *HTTPDownloader) *HTTPRecursiveDownloader
NewHTTPRecursiveDownloader 创建HTTP递归下载器实例
func (*HTTPRecursiveDownloader) DownloadPackageWithDependencies ¶ added in v1.3.1
func (hrd *HTTPRecursiveDownloader) DownloadPackageWithDependencies(ctx context.Context, pkgName string, destDir string) error
DownloadPackageWithDependencies 递归下载包及其所有依赖
type PackageInfo ¶
type PackageInfo struct {
Name string
Version string
Architecture string
Hash string
HashType string
}
PackageInfo 包信息结构
type PackageMetadata ¶ added in v1.3.1
type PackageMetadata struct {
PackageName string
Version string
Architecture string
Depends []string
Filename string
MD5sum string
SHA256 string
Size int64
}
PackageMetadata 包元数据
type PackageValidationResult ¶
type PackageValidationResult struct {
FilePath string
IsValid bool
Error error
PackageInfo PackageInfo
}
PackageValidationResult 验证结果
type PackageVerifier ¶
type PackageVerifier interface {
// VerifyPackage 验证包文件
VerifyPackage(pkgFile string, pkgInfo PackageInfo) error
// VerifyDirectory 验证目录中的所有包文件
VerifyDirectory(dir string, pkgName string) ([]string, error)
// GetPackageInfo 获取包信息
GetPackageInfo(pkgFile string) (PackageInfo, error)
// CalculateHash 计算文件哈希值
CalculateHash(filePath string, hashType string) (string, error)
}
PackageVerifier 包验证器接口
type PackageVerifierFactory ¶
type PackageVerifierFactory struct{}
PackageVerifierFactory 包验证器工厂
func NewPackageVerifierFactory ¶
func NewPackageVerifierFactory() *PackageVerifierFactory
NewPackageVerifierFactory 创建包验证器工厂
func (*PackageVerifierFactory) GetVerifier ¶
func (f *PackageVerifierFactory) GetVerifier(managerName string, config *glpm.ManagerConfig) PackageVerifier
GetVerifier 获取包验证器
type RecursiveDownloader ¶
type RecursiveDownloader struct {
// contains filtered or unexported fields
}
RecursiveDownloader 递归下载器
func NewRecursiveDownloader ¶
func NewRecursiveDownloader(d Downloader) *RecursiveDownloader
NewRecursiveDownloader 创建递归下载器实例
func (*RecursiveDownloader) CollectDependencies ¶
func (rd *RecursiveDownloader) CollectDependencies(ctx context.Context, pkgName string) ([]string, error)
CollectDependencies 收集所有依赖(递归收集,不下载)
func (*RecursiveDownloader) DeduplicateDependencies ¶
func (rd *RecursiveDownloader) DeduplicateDependencies(deps []string) []string
DeduplicateDependencies 去除依赖列表中的重复项
func (*RecursiveDownloader) DownloadPackageWithDependencies ¶
func (rd *RecursiveDownloader) DownloadPackageWithDependencies(ctx context.Context, pkgName string, destDir string) error
DownloadPackageWithDependencies 递归下载包及其所有依赖 isOfflineMode: 是否为离线包模式(使用-f参数),离线包模式下依赖清单不包含主包
func (*RecursiveDownloader) DownloadPackageWithDependenciesWithMode ¶
func (rd *RecursiveDownloader) DownloadPackageWithDependenciesWithMode(ctx context.Context, pkgName string, destDir string, isOfflineMode bool) error
DownloadPackageWithDependenciesWithMode 递归下载包及其所有依赖(支持离线包模式) isOfflineMode: 是否为离线包模式(使用-f参数),离线包模式下依赖清单不包含主包
type RepositoryConfig ¶ added in v1.3.1
type RepositoryConfig struct {
// Debian/Ubuntu 仓库配置
BaseURL string // 仓库基础URL,如 http://archive.ubuntu.com/ubuntu/
Distribution string // 发行版,如 "jammy", "bookworm"
Components []string // 组件,如 ["main", "universe", "restricted"]
Suites []string // 套件,如 ["focal", "jammy"]
// YUM/RPM 仓库配置
RepoURL string // YUM仓库URL
RepodataPath string // repodata路径,如 "repodata/"
// 自定义URL支持
CustomBaseURL string // 用户自定义的基础URL,优先级最高
CustomRepoURL string // 用户自定义的YUM仓库URL
// HTTP请求头配置
EnableHeaders bool // 是否启用浏览器请求头(默认false)
Headers map[string]string // 自定义HTTP请求头
}
RepositoryConfig 仓库配置
type RepositoryInfo ¶ added in v1.3.1
type RepositoryInfo struct {
Name string // 仓库名称
Description string // 描述
Type string // 类型: debian, ubuntu, uos, kylin, deepin, centos
Version string // 版本代号
Arch string // 架构
URL string // 仓库URL
}
RepositoryInfo 仓库信息
type RepositoryManager ¶ added in v1.3.1
type RepositoryManager struct{}
RepositoryManager 仓库配置管理器
func NewRepositoryManager ¶ added in v1.3.1
func NewRepositoryManager() *RepositoryManager
NewRepositoryManager 创建仓库管理器
func (*RepositoryManager) GetRepositoryConfig ¶ added in v1.3.1
func (m *RepositoryManager) GetRepositoryConfig(systemType, version, arch string) *RepositoryConfig
GetRepositoryConfig 获取指定系统的仓库配置 使用清华大学镜像站,支持 Debian, Ubuntu, UOS, Kylin, Deepin
func (*RepositoryManager) GetRepositoryConfigWithCustomURL ¶ added in v1.3.1
func (m *RepositoryManager) GetRepositoryConfigWithCustomURL(systemType, version, arch, customURL string) *RepositoryConfig
GetRepositoryConfigWithCustomURL 获取仓库配置,支持自定义URL customURL: 用户自定义的基础URL,为空则使用默认镜像源
func (*RepositoryManager) GetRepositoryConfigWithHeaders ¶ added in v1.3.1
func (m *RepositoryManager) GetRepositoryConfigWithHeaders(systemType, version, arch, customURL string, enableHeaders bool) *RepositoryConfig
GetRepositoryConfigWithHeaders 获取仓库配置,支持自定义URL和请求头 enableHeaders: 是否启用浏览器请求头(默认false)
func (*RepositoryManager) ListSupportedSystems ¶ added in v1.3.1
func (m *RepositoryManager) ListSupportedSystems() []RepositoryInfo
ListSupportedSystems 返回支持的系统列表
type SourceEntry ¶ added in v1.3.1
type SourceEntry struct {
Enabled bool // 是否启用
Type string // 类型: deb, deb-src, rpm, yum
URL string // 仓库URL
Distribution string // 发行版
Components []string // 组件
Arch string // 架构(可选)
SourceFile string // 来源文件
LineNum int // 行号
}
SourceEntry 代表一个源配置项
func (*SourceEntry) ToRepositoryConfig ¶ added in v1.3.1
func (e *SourceEntry) ToRepositoryConfig() *RepositoryConfig
ToRepositoryConfig 将SourceEntry转换为RepositoryConfig
type SourcesConfig ¶ added in v1.3.1
type SourcesConfig struct {
Entries []SourceEntry // 所有源条目
ValidCount int // 有效条目数
ErrorCount int // 错误条目数
}
SourcesConfig 源配置文件解析结果
func ParseSourcesFile ¶ added in v1.3.1
func ParseSourcesFile(filePath string) (*SourcesConfig, error)
ParseSourcesFile 解析源配置文件(支持.list、.repo和.sources格式)
func (*SourcesConfig) GetDebianEntries ¶ added in v1.3.1
func (c *SourcesConfig) GetDebianEntries() []SourceEntry
GetDebianEntries 获取所有Debian源
func (*SourcesConfig) GetEntriesByType ¶ added in v1.3.1
func (c *SourcesConfig) GetEntriesByType(sourceType string) []SourceEntry
GetEntriesByType 根据类型获取源条目
func (*SourcesConfig) GetFirstEntry ¶ added in v1.3.1
func (c *SourcesConfig) GetFirstEntry() *SourceEntry
GetFirstEntry 获取第一个有效的源条目
func (*SourcesConfig) GetYUMEntries ¶ added in v1.3.1
func (c *SourcesConfig) GetYUMEntries() []SourceEntry
GetYUMEntries 获取所有YUM源
func (*SourcesConfig) String ¶ added in v1.3.1
func (c *SourcesConfig) String() string
String 返回配置的字符串表示
type ValidatePackageResults ¶
type ValidatePackageResults struct {
Results []PackageValidationResult
ValidCount int
TotalCount int
}
ValidatePackageResults 批量验证结果
type YUMChecksum ¶ added in v1.3.1
type YUMData ¶ added in v1.3.1
type YUMData struct {
Type string `xml:"type,attr"`
Location YUMLocation `xml:"location"`
Checksum YUMChecksum `xml:"checksum"`
}
type YUMHTTPDownloader ¶ added in v1.3.1
type YUMHTTPDownloader struct {
*HTTPDownloader
}
YUMHTTPDownloader YUM HTTP下载器
func NewYUMHTTPDownloader ¶ added in v1.3.1
func NewYUMHTTPDownloader(architecture string, repoConfig *RepositoryConfig) *YUMHTTPDownloader
NewYUMHTTPDownloader 创建YUM HTTP下载器
func (*YUMHTTPDownloader) GetDependencies ¶ added in v1.3.1
GetDependencies 获取依赖
func (*YUMHTTPDownloader) GetManagerName ¶ added in v1.3.1
func (h *YUMHTTPDownloader) GetManagerName() string
GetManagerName 获取管理器名称
func (*YUMHTTPDownloader) ListDownloadedFiles ¶ added in v1.3.1
func (h *YUMHTTPDownloader) ListDownloadedFiles(destDir string) ([]string, error)
ListDownloadedFiles 列出已下载文件
func (*YUMHTTPDownloader) VerifyDownload ¶ added in v1.3.1
func (h *YUMHTTPDownloader) VerifyDownload(ctx context.Context, pkgName string, destDir string) error
VerifyDownload 验证下载
type YUMLocation ¶ added in v1.3.1
type YUMLocation struct {
Href string `xml:"href,attr"`
}
type YUMPackage ¶ added in v1.3.1
type YUMPackage struct {
Name string `xml:"name"`
Arch string `xml:"arch"`
Version YUMVersion `xml:"version"`
Location YUMPackageLocation `xml:"location"`
Requires []YUMRequire `xml:"format>requires>entry"`
Size int64 `xml:"size>package"`
}
type YUMPackageLocation ¶ added in v1.3.1
type YUMPackageLocation struct {
Href string `xml:"href,attr"`
}
type YUMPackageMetadata ¶ added in v1.3.1
type YUMPackageMetadata struct {
PackageName string
Version string
Architecture string
Location string
Depends []string
SHA256 string
Size int64
}
YUMPackageMetadata YUM包元数据
type YUMPackageVerifier ¶
type YUMPackageVerifier struct {
// contains filtered or unexported fields
}
YUMPackageVerifier YUM包专用验证器
func NewYUMPackageVerifier ¶
func NewYUMPackageVerifier(config *glpm.ManagerConfig) *YUMPackageVerifier
NewYUMPackageVerifier 创建YUM包验证器
func (*YUMPackageVerifier) CalculateHash ¶
func (v *YUMPackageVerifier) CalculateHash(filePath string, hashType string) (string, error)
CalculateHash 计算文件哈希值
func (*YUMPackageVerifier) GetPackageInfo ¶
func (v *YUMPackageVerifier) GetPackageInfo(pkgFile string) (PackageInfo, error)
GetPackageInfo 获取RPM包信息
func (*YUMPackageVerifier) VerifyDirectory ¶
func (v *YUMPackageVerifier) VerifyDirectory(dir string, pkgName string) ([]string, error)
VerifyDirectory 验证目录中的所有包文件
func (*YUMPackageVerifier) VerifyPackage ¶
func (v *YUMPackageVerifier) VerifyPackage(pkgFile string, pkgInfo PackageInfo) error
VerifyPackage 验证YUM包
type YUMPrimary ¶ added in v1.3.1
type YUMPrimary struct {
XMLName xml.Name `xml:"metadata"`
Packages []YUMPackage `xml:"package"`
}
YUMPrimary XML结构
type YUMRequire ¶ added in v1.3.1
type YUMRequire struct {
Name string `xml:"name,attr"`
}
type YUMVersion ¶ added in v1.3.1
type YumDownloader ¶
type YumDownloader struct {
// contains filtered or unexported fields
}
YumDownloader YUM包下载器
func NewYumDownloader ¶
func NewYumDownloader(config *glpm.ManagerConfig, architecture string) *YumDownloader
NewYumDownloader 创建YUM下载器实例
func (*YumDownloader) GetDependencies ¶
GetDependencies 获取指定包的所有依赖
func (*YumDownloader) GetManagerName ¶
func (d *YumDownloader) GetManagerName() string
GetManagerName 获取包管理器名称
func (*YumDownloader) ListDownloadedFiles ¶
func (d *YumDownloader) ListDownloadedFiles(destDir string) ([]string, error)
ListDownloadedFiles 列出已下载的文件
func (*YumDownloader) VerifyDownload ¶
VerifyDownload 验证已下载的包