Skip to main content

Command Palette

Search for a command to run...

工具推荐: Darling - 在 Linux 运行 macOS 的软件

Updated
2 min read
工具推荐: Darling - 在 Linux 运行 macOS 的软件

介绍

可以帮助用户在非 mac 平台运行 mac 平台的软件。

当然这个也是有限制的。

安装

不同的平台需要安装的软件不同,这里以 Ubuntu 22.04 为例子进行介绍。

其他的 Linux 的发行版参考 这个

下载需要库

sudo apt install cmake clang bison flex libfuse-dev libudev-dev pkg-config libc6-dev-i386 \
gcc-multilib libcairo2-dev libgl1-mesa-dev libglu1-mesa-dev libtiff5-dev \
libfreetype6-dev git git-lfs libelf-dev libxml2-dev libegl1-mesa-dev libfontconfig1-dev \
libbsd-dev libxrandr-dev libxcursor-dev libgif-dev libavutil-dev libpulse-dev \
libavformat-dev libavcodec-dev libswresample-dev libdbus-1-dev libxkbfile-dev \
libssl-dev python2

2. clone darling 项目

# clone 项目
git clone --recursive https://github.com/darlinghq/darling.git

构建和安装

# 进入刚才 clone 的目录
cd darling

# 删除已经安装的 darling
sudo ./tools/uninstall

# 创建构建目录
mkdir build && cd build

# 执行 cmake 进行构建
cmake ..

# 构建
make

# 安装
make install

使用

darling 不止可以直接运行 Mac 平台的软件,还可以安装 Mac 平台的 DMG 格式的软件,不过我没有这个需要,这里主要介绍在 Linux 平台运行 Mac 平台的命令行软件。

# 在 Linux 下启动一个 macOS 的环境
$ darling shell
Setting up a new Darling prefix at /home/tomshine/.darling
Bootstrapping the container with launchd...

The default interactive shell is now zsh.
To update your account to use zsh, please run `chsh -s /bin/zsh`.
For more details, please visit https://support.apple.com/kb/HT208050.

# 查看内核版本
$ uname -a
Darwin ubuntu22.04 20.6.0 Darwin Kernel Version 20.6.0 x86_64

实例

首先我们使用 go 写一个程序,然后进行测试,内容如下:

需要准备三个文件:

  • main.go
  • main_linux.go
  • main_darwin.go

然后进行编译,进行测试。

main.go 内容如下:

package main

func main() {
  PrintOS()
}
```ma c

`main_linux.go` 内容如下:

```go
//go:build linux

package main

import (
    "fmt"
    "runtime"
)

func PrintOS() {
    fmt.Println("OS is", runtime.GOOS)
}

main_darwin.go 内容如下:

//go:build darwin

package main

import (
    "fmt"
    "runtime"
)

func PrintOS() {
    fmt.Println("OS is", runtime.GOOS)
}

编译:

$ GOOS=linux go build -o darling-linux
$ GOOS=darwin go build -o darling-darwin

查看二进制的类型:

$ file darling-linux
darling-linux: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), statically linked, Go BuildID=BrvHsgIjrBhSTFuvkyEm/m5-a3TFICalPz-oYNNpy/Nnl87_vvwB9rds54GOyM/JgRfd1wJbYrRhG83TWrq, with debug_info, not stripped
$ file darling-darwin
darling-darwin: Mach-O 64-bit x86_64 executable

运行:

$ ./darling-darwin
Cannot mmap segment __LINKEDIT at 0x1173000: File exists

# TODO 出错了,但是不知道什么原因,等待解决。

资料

106 views

More from this blog

Upgit 图片管理实战:为 Markdown 博客带来极致高效的图片管理体验

在博客写作的过程中,图片管理是提升效率和内容质量的关键环节。Upgit 作为高效、跨平台的文件上传工具,可以帮助博客创作者将图片便捷地上传至 GitHub,并生成可直接引用的外链,特别适合以 Markdown 写作为核心的写作流程。 Upgit 是一款开源的文件上传工具,项目地址:https://github.com/pluveto/upgit。它能将图片、文档等文件快速上传到 GitHub、Gitee、CDN 以及各类网盘,自动生成直链,特别适合 Markdown 写作、博客创作和团队协作等场...

Oct 5, 20252 min read1

工作日快充信息法宝:Kagi News 和 Huxe 推荐

最近用了一下两个新出的信息工具,体验下来感受挺不一样,整理一下分享给大家:如何用更高效、更智能的方式,每天花极少时间就能掌握需要的信息。 Kagi News Kagi News 是一个主打高效的新闻工具。每天只需要花几分钟,就能快速浏览全球范围内的关键新闻,而且每条内容都带有不同观点和来源。 App Store:https://apps.apple.com/us/app/kagi-news/id6748314243 网页版:https://kite.kagi.com/ 体验亮点: ...

Sep 27, 20251 min read6
工作日快充信息法宝:Kagi News 和 Huxe 推荐

GLM 4.5 配置全攻略:Claude Code 与 Codex 实战指南

简介 智谱最新推出的 GLM 4.5 是一款面向编程和智能应用的通用大模型,相比前一代在代码生成、复杂推理、对话体验等方面有了显著提升。它不仅支持在交互式编程中作为助手使用,还可以集成到 Claude Code 和 Codex 工具中,帮助开发者更高效地完成编码、调试和文档处理等任务。 本文将介绍 GLM 4.5 在 Claude Code 和 Codex 中的配置方法,帮助你快速上手。目前智谱还推出了一个 “编程套餐” GLM Coding Plan,有限时优惠,基础版本 3 个月仅需 60 ...

Sep 27, 20251 min read36
GLM 4.5 配置全攻略:Claude Code 与 Codex 实战指南

我使用的工具:终端篇

作为一名开发者,终端(Terminal)是我们日常工作中接触最频繁的工具之一。它不仅是与操作系统交互的窗口,更是一个可以高度定制、提升效率的利器。在过去的几年里,我尝试了市面上许多主流和新兴的终端应用,从追求性能的 GPU 加速终端,到集成 AI 的新时代终端,各有千秋。 在这里,我想分享一下我个人使用过的终端工具,以及它们各自的特点和我的主观看法。 iTerm2 官网:https://iterm2.com/ 平台:macOS 特点:免费、开源 PS: 我接触 Mac 后使用时间最长的终...

Sep 13, 20253 min read9
我使用的工具:终端篇

Untitled Publication

42 posts

I want to share something.