找回密码
 立即注册

手机短信,快捷登录

QQ登录

只需一步,快速开始

查看: 2086|回复: 0

如何快速搭建cydia源,最详细的Cydia源教程内附java与php2套方法

[复制链接]

6

主题

0

回帖

20

积分

新手上路

积分
20
发表于 2023-12-10 03:34:07 | 显示全部楼层 |阅读模式
前言:java是否熟悉?php?,如果你要都不熟悉那么还是让淘宝小二来帮你搭建吧,


准备好服务器


对于iOS越狱用户来说可能平常接触最多的软件就是Cydia,在近些年来Saurik宣布停止对Cydia的维护后,市面上出现了很多新的“越狱商店”,例如Sileo和Zebra,它们都在用户界面和功能上进行了大幅度的改善。

但是这些所谓越狱商店并不具备和App Store一样的功能,为什么这么说呢?因为App Store的软件由Apple直接提供并推送到客户端,但是Cydia的内容却需要依靠“软件源”来提供。其中的区别
游客,如果您要查看本帖隐藏内容请回复


APT的功能依赖于DPKG(Debian Packager),它用在Debian系Linux的“.deb”格式的软件包的处理,而APT的作用则是从软件源中获取软件包并梳理依赖关系,确保软件包最终能够被正常且完整地安装到用户的设备。

在iOS越狱环境中,这两个工具已经作为默认的包管理工具。因此,一切在iOS上使用的“插件”都需要遵守Debian软件包的规范。一个Cydia软件源本身也必然是在Debian已有的软件源机制上进行的扩展。

本文将粗略讲解一个适用于iOS越狱环境的软件源的基本搭建步骤,其中大部分内容与Debian上对应的操作相同或相似,有Debian操作经验的读者可更容易理解本文内容。


一、软件源的基本结构
一个软件源需要至少有一个对自身的描述,以及对软件源内可访问软件包列表的索引。

通过查阅Debian官方的软件源文档,我们可以得知,在源的根目录中,我们至少需要一个“Release”文件与“Packages”文件。

在“Release”文件中,包含有关软件源的索引信息,以及用于自身校验的元数据("DebianRepository/Format - Debian Wiki", 2021)。同时Debian官方建议,如无必要的情况下,最好不要将Release进行签名或添加MD5sum处理,因此本文不讨论这些细节。但如果您选择将Packages和Release放在不同的目录时,您可能需要添加这些数据。

二、开始操作
Release的基本格式如下

Origin: Torrekie/とれいき's Repo
Label: Torrekie/戸岺奇's Repo
Suite: stable
Version: 1.1
Codename: Muzilla
Architectures: iphoneos-arm
Components: main
Description: Torrekie/戸岺奇's repo
其中

Origin: 源名称,Cydia中显示在源列表以及软件详情页下方
Label: 源名称,Cydia中显示在插件列表中插件名称下方
Suite: 源类型,可以是oldstable/stable/beta/unstable/experimental,取决于你的需要,默认情况stable
Version: 源版本,通常情况下不需要变动,但是如果更新了,客户端会提示
Codename: 这个是随意的,只是一个标识,但它必须是英文
Architectures: 架构,针对iOS越狱的源统一填iphoneos-arm
Components: 通常情况下这里写main,本文不涉及更复杂结构
Description: 源描述,在这里简要阐述软件源的信息
通常情况下,软件源中的Release文件不需要变动,如果您已经跟随上方指导完成了Release的创建,那么您可能很长一段时间都不再需要变更它了。

对于另外一个必要文件Packages,情况则发生了改变;它需要记录软件源中所有软件包的信息,因此条件允许的情况下,您可能不应该手写这个文件。

Packages中记录的信息是对所有软件包的描述信息扫描并计算后存储的,Packages中表示单一软件包的例子如下,但是请注意,您不应该复制这一段到您的软件源中,因为它将不起作用

Package: speedtest
Version: 2.1.2
Architecture: iphoneos-arm
Maintainer: sivel
Depends: python | python2 | python3 | python3.7 | python3.8
Filename: debs/speedtest_2.1.2_iphoneos-arm.deb
Size: 16254
MD5sum: ea6a4421d39f003d6307cd8168a422d7
SHA1: f0cd9274734febe19b6ec4d1602a50d2169c5e2f
SHA256: ef0f863f6daaf0cb6754cb623de180238fad9286ca7b9a755c743ea017efba5b
Section: Networking
Priority: standard
Homepage: https://github.com/sivel/speedtest-cli
Description: CLI tool for testing internet bandwidth using speedtest.net
Tag: purpose::console, role::hacker
Author: sivel
Depiction: https://apt.torrekie.com/info/speedtest
Name: Speedtest
在这段Packages中,大部分内容来自软件包中已有的信息,但是其中的Filename、Size、MD5sum、SHA1、SHA256是经过程序检测或计算之后保存的。

在Debian系Linux操作系统中,已经自带了“dpkg-scanpackages”命令用于生成Packages文件,该命令在其他系统中不存在,但是你可以通过安装的方式在部分系统上获取这个命令,或者使用相同功能的替代脚本,这里不再过多阐述。

生成Packages的命令如下

#将位于debs目录的所有deb包扫描并生成Packages
dpkg-scanpackages -m debs/ > Packages
#生成客户端可能需要的gz和bz2压缩的Packages
gzip -c Packages > Packages.gz
bzip2 -k Packages
需要一个有内容的Packages,你的源需要至少有一个软件包上架,否则源看起来将是空荡荡的没有任何东西。因此,你可能需要在源中放入一些自行开发或制作的软件包。只有被Packages记录的软件包可以被客户端读取。

现在,你的文件目录看起来应该是这样的

/var/www/MyFirstRepo
├── CydiaIcon.png
├── debs
│   └── my.first.pack_1.0_iphoneos-arm.deb
├── Packages
├── Packages.bz2
├── Packages.gz
├── Release
其中,CydiaIcon.png是针对图形化包管理工具(如Cydia)的源图标,这个图标的建议尺寸是64x64像素,过大或过小都会导致显示不正常。

debs目录可以是其他的名称,它应该用来存放你希望上架的所有软件包;可以看到上述目录结构中包含了一个deb文件,本篇文章暂不讲解如何打包/自制deb文件。

Packages文件中则是记录了dpkg-scanpackages命令扫描debs目录后输出的所有软件包信息,Packages.bz2与Packages.gz则是压缩后的Packages文件,便于传输。

Release文件中包含了软件源信息。

以我的个人源为例,最终在Cydia中呈现效果如下


但是上述内容仅展示了如何制作一个基础的软件源结构,如果你希望软件源能够被所有人访问,那么你可能需要一台网络服务器以及一个域名。

三、将软件源架设到公网
域名需从域名服务商(例如Namecheap/Aliyun等)购买,在购买之后你需要设置一个A记录,来实现二级域名(子域名)。创建二级域名的目的是将其与主站点分离(例如你访问https://torrekie.com与https://apt.torrekie.com的时候进入的不是同一个页面)

通常情况下,用作APT软件源地址的子域名会命名为“apt”,表示这是一个apt软件源,当然这个是随意的,视个人喜好决定。

A记录须如图设置
网络服务器建议使用Debian/Ubuntu系统,随后安装Apache2并进行站点配置。

进入/etc/apache2/sites-enabled/,创建一个新的配置文件(可仿照自带的默认配置)

<VirtualHost *:80>
                #这里设置二级域名
                ServerName apt.torrekie.com
        ServerAdmin webmaster@localhost
                #这里设置站点目录
        DocumentRoot /var/www/MyFirstRepo
</VirtualHost>
关于Apache2的配置这里不详解,如果需要设置https等,可以直接百度查找到很详细的教程。或者您也可以使用其他的同类替代品(如Nginx)

其中的DocumentRoot指向的路径需要为软件源的目录,浏览器访问时会默认在这个目录中寻找index.html/index.php等,所以如果你有精力,也许应该给自己的软件源编写一个看起来还不错的前端页面。

四、小结
软件源的搭建流程较为简单,上述内容简单易学。

编写Release文件、生成Packages文件后,一个基本的软件源就可以被成功读取。将软件源上传到服务器并通过Apache2等工具开放到公共网络后,软件源将能够被任何人访问并从其中下载内容。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|老超市 ( 辽ICP备16008076号-2|辽公网安备21140302000151号 )

GMT+8, 2024-4-26 22:42 , Processed in 0.097940 second(s), 21 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表