安装Theos

环境:Mac OS Big Sur 版本11.2.1

1、Mac需先安装Homebrew,参考Homebrew官网 https://brew.sh
2、终端命令 安装 ldid

brew install ldid
或
brew install ldid fakeroot

结果如下

Warning: ldid 2.1.4 is already installed and up-to-date.
To reinstall 2.1.4, run:
  brew reinstall ldid

说明已经安装过

其中fakeroot作用是模拟root权限。

3、安装dpkg

brew install dpkg

提示如下错误:

==> Downloading https://mirrors.ustc.edu.cn/homebrew-bottles/perl-5.32.1_1.big_sur.bottle.tar.gz
##O=#  #                                                                      
curl: (22) The requested URL returned error: 404 
Warning: Bottle missing, falling back to the default domain...


==> Installing dependencies for dpkg: perl and xz
==> Installing dpkg dependency: perl
==> Pouring perl-5.32.1_1.big_sur.bottle.tar.gz
tar: Error opening archive: Failed to open '/Users/username/Library/Caches/Homebrew/downloads/b1234--perl-5.32.1_1.big_sur.bottle.tar.gz'
Error: Failure while executing; `tar --extract --no-same-owner --file /Users/username/Library/Caches/Homebrew/downloads/b1234--perl-5.32.1_1.big_sur.bottle.tar.gz --directory /private/tmp/d20210618-19986-v9dv84` exited with 1. Here's the output:
tar: Error opening archive: Failed to open '/Users/username/Library/Caches/Homebrew/downloads/b1234--perl-5.32.1_1.big_sur.bottle.tar.gz'

经分析是

是bintray即将关闭,新版的homebrew去除了bintray相关,开始使用ghcr.io服务,而我本地的镜像仍然指向bintray

解决方案1
既然这个镜像下载不了perl-5.32.1_1.big_sur.bottle,那我们干脆直接去对应网站https://bintray.com 手动下载perl-5.32.1_1.big_sur.bottle,然后把下载后的perl-5.32.1_1.big_sur.bottle放在本地对应的目录即可安装。

根据报错的提示,把下载后的perl-5.32.1_1.big_sur.bottle放入/Users/username/Library/Caches/Homebrew/downloads/下面并重命名为
b1234--perl-5.32.1_1.big_sur.bottle.tar.gz

然后终端执行命令

brew install dpkg

发现不用再去下载,安装成功,结果如下

==> Downloading https://mirrors.ustc.edu.cn/homebrew-bottles/perl-5.32.1_1.big_sur.bottle.tar.gz
Already downloaded: /Users/username/Library/Caches/Homebrew/downloads/b1234--perl-5.32.1_1.big_sur.bottle.tar.gz
==> Downloading https://mirrors.ustc.edu.cn/homebrew-bottles/xz-5.2.5.big_sur.bottle.tar.gz
Already downloaded: /Users/username/Library/Caches/Homebrew/downloads/c5678--xz-5.2.5.big_sur.bottle.tar.gz
==> Downloading https://mirrors.ustc.edu.cn/homebrew-bottles/dpkg-1.20.9.big_sur.bottle.tar.gz
Already downloaded: /Users/username/Library/Caches/Homebrew/downloads/b9804--dpkg-1.20.9.big_sur.bottle.tar.gz
==> Installing dependencies for dpkg: perl and xz
==> Installing dpkg dependency: perl
==> Pouring perl-5.32.1_1.big_sur.bottle.tar.gz
==> Caveats
By default non-brewed cpan modules are installed to the Cellar. If you wish
for your modules to persist across updates we recommend using `local::lib`.

You can set that up like this:
  PERL_MM_OPT="INSTALL_BASE=$HOME/perl5" cpan local::lib
  echo 'eval "$(perl -I$HOME/perl5/lib/perl5 -Mlocal::lib=$HOME/perl5)"' >> ~/.zshrc
==> Summary
🍺  /usr/local/Cellar/perl/5.32.1_1: 2,467 files, 65MB
==> Installing dpkg dependency: xz
==> Pouring xz-5.2.5.big_sur.bottle.tar.gz
🍺  /usr/local/Cellar/xz/5.2.5: 95 files, 1.4MB
==> Installing dpkg
==> Pouring dpkg-1.20.9.big_sur.bottle.tar.gz
==> Caveats
This installation of dpkg is not configured to install software, so
commands such as `dpkg -i`, `dpkg --configure` will fail.
==> Summary
🍺  /usr/local/Cellar/dpkg/1.20.9: 616 files, 14.2MB
==> `brew cleanup` has not been run in 30 days, running now...
Removing: /usr/local/Cellar/openssl@1.1/1.1.1j... (8,071 files, 18.5MB)
Removing: /Users/username/Library/Logs/Homebrew/chisel... (64B)
Pruned 0 symbolic links and 6 directories from /usr/local
==> Caveats
==> perl
By default non-brewed cpan modules are installed to the Cellar. If you wish
for your modules to persist across updates we recommend using `local::lib`.

You can set that up like this:
  PERL_MM_OPT="INSTALL_BASE=$HOME/perl5" cpan local::lib
  echo 'eval "$(perl -I$HOME/perl5/lib/perl5 -Mlocal::lib=$HOME/perl5)"' >> ~/.zshrc
==> dpkg
This installation of dpkg is not configured to install software, so
commands such as `dpkg -i`, `dpkg --configure` will fail.

解决方案2
解决方案2我没有尝试,仅做记录。
查阅资料,有的说去掉本地的镜像即可,使用如下命令临时修改

export HOMEBREW_BOTTLE_DOMAIN=''

也可以根据电脑实际情况打开对应的配置文件进行修改

vim ~/.bash_profile
或
vim ~/.zshrc

4、GitHub上下载theos代码并放到本地/opt/theos目录,
recursive参数作用是拉取所有子模块。

sudo git clone --recursive https://github.com/theos/theos.git /opt/theos

下载安装theos过程中有时会遇到下载失败或其子模块下载安装失败,此时要到/opt目录下把theos删除掉,然后重新下载,最好一次包括子模块全部下载成功。

5、修改theos权限

sudo chown $(id -u):$(id -g) /opt/theos

sudo chown -R $(id -u):$(id -g) /opt/theos

6、配置环境变量,根据本地电脑实际情况,打开对应配置文件

vim ~/.bash_profile
或
vim ~/.zshrc

写入如下配置

export THEOS=/opt/theos
export PATH=/opt/theos/bin/:$PATH

:wq保存退出

如果电脑默认为zsh且theos的环境变量配置在~/.bash_profile中,
那么需要
vim ~/.zshrc
然后在~/.zshrc中写入

source ~/.bash_profile
source /etc/profile

并:wq保存退出。

然后终端执行

source ~/.bash_profile
或
source ~/.zshrc

7、验证theos是否安装成功
终端命令

nic.pl

得到如下结果,表示成功

NIC 2.0 - New Instance Creator
------------------------------
  [1.] iphone/activator_event
  [2.] iphone/activator_listener
  [3.] iphone/application_modern
  [4.] iphone/application_swift
  [5.] iphone/cydget
  [6.] iphone/flipswitch_switch
  [7.] iphone/framework
  [8.] iphone/library
  [9.] iphone/notification_center_widget
  [10.] iphone/notification_center_widget-7up
  [11.] iphone/preference_bundle_modern
  [12.] iphone/theme
  [13.] iphone/tool
  [14.] iphone/tool_swift
  [15.] iphone/tweak
  [16.] iphone/tweak_with_simple_preferences
  [17.] iphone/xpc_service
Choose a Template (required): 

如果出现
zsh: command not found:nic.pl
说明theos安装失败,重复以上操作,确保克隆theos.git时包括子模块一次性完整的成功,然后正确配置环境变量.

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 194,088评论 5 459
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 81,715评论 2 371
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 141,361评论 0 319
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 52,099评论 1 263
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 60,987评论 4 355
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 46,063评论 1 272
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 36,486评论 3 381
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 35,175评论 0 253
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 39,440评论 1 290
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 34,518评论 2 309
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 36,305评论 1 326
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,190评论 3 312
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 37,550评论 3 298
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 28,880评论 0 17
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,152评论 1 250
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 41,451评论 2 341
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 40,637评论 2 335

推荐阅读更多精彩内容

  • 【安装Homebrew】 终端执行 /usr/bin/ruby -e "$(curl -fsSL https://...
    酷酷的P阅读 501评论 0 50
  • 通过theos实现非常简单的hoke操作,下载地址:https://github.com/theos/theos ...
    HelloKing阅读 732评论 0 0
  • 1.如果Mac上安装了多个Xcode,则需要使用xcode-select命令指定一个XCode,即Theos默认使...
    alitan2015阅读 192评论 0 0
  • 1.在安装Theos之前,先安装dpkg和ldid 我们使用Homebrew来安装,如果没有安装Homebrew,...
    xhzth70911阅读 190评论 0 0
  • Theos 地址:https://github.com/theos/theos/wiki/Installation...
    YanZi_33阅读 329评论 0 0