<?xml version="1.0" encoding="UTF-8" ?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
<channel>
<title>[BUG] MyCard Linux 版 (v3.0.77) 内置 aria2c 二进制文件格式错误 (Mach-O)</title>
<link>https://ygobbs2.com/t/bug-mycard-linux-%E7%89%88-v3077-%E5%86%85%E7%BD%AE-aria2c-%E4%BA%8C%E8%BF%9B%E5%88%B6%E6%96%87%E4%BB%B6%E6%A0%BC%E5%BC%8F%E9%94%99%E8%AF%AF-mach-o/574754</link>
<description>项目相关:MyCard-3.0.77.AppImage
运行环境:Arch Linux (x86_64)
错误现象:在使用 MyCard 下载 YGOPRO2 时,调用 aria2c 失败,终端返回 32 错误码。
## 问题描述
在 Linux 环境下运行 MyCard 客户端并尝试下载资源时,程序无法启动内置的 `aria2c` 进行下载任务。经过提取 AppImage 内容分析,确认该版本打包的可执行文件并非 Linux ELF 格式。
## 复现步骤
1. 在 Arch Linux (大概率任意发行版上)上运行 `MyCard-3.0.77.AppImage`。
2. 尝试点击下载/更新 YGOPRO2。
3. 观察到无法下载,系统报告执行错误。
## 调试信息
通过提取 AppImage 镜像并使用 `file` 命令检查内置二进制文件:
```
$ ./MyCard-3.0.77.AppImage --appimage-extract
$ file ./squashfs-root/resources/bin/aria2c
```
实际输出:
> `./squashfs-root/resources/bin/aria2c: Mach-O universal binary with 2 architectures: [x86_64: Mach-O 64-bit x86_64 executable] [arm64: Mach-O 64-bit arm64 executable]`
## 原因分析
该版本的 Linux AppImage 打包了 macOS 平台的 **Mach-O** 通用二进制文件(Universal Binary),而非 Linux 所需的 **ELF** 格式可执行文件。同时,资源目录中缺失了适用于 Linux 系统的 `aria2c` 副本,导致 Linux 内核在尝试 `execve` 时返回 `ENOEXEC` (32)。
## 临时解决方案
目前 Arch Linux 用户(及其其他发行版用户)可以通过安装系统原生的 `aria2` 并确保其路径在搜索范围内,或手动替换提取目录中的二进制文件来绕过此问题:
```
sudo pacman -S aria2
```</description>
<language>zh-CN</language>
<lastBuildDate>Thu, 19 Mar 2026 19:52:28 +0000</lastBuildDate>
<category>问题反馈</category>
<atom:link href="https://ygobbs2.com/t/bug-mycard-linux-%E7%89%88-v3077-%E5%86%85%E7%BD%AE-aria2c-%E4%BA%8C%E8%BF%9B%E5%88%B6%E6%96%87%E4%BB%B6%E6%A0%BC%E5%BC%8F%E9%94%99%E8%AF%AF-mach-o/574754.rss" rel="self" type="application/rss+xml" />
<item>
<title>[BUG] MyCard Linux 版 (v3.0.77) 内置 aria2c 二进制文件格式错误 (Mach-O)</title>
<dc:creator><![CDATA[星光pokeboy]]></dc:creator>
<description><![CDATA[
<p>感谢反馈</p>
<p><a href="https://ygobbs2.com/t/bug-mycard-linux-%E7%89%88-v3077-%E5%86%85%E7%BD%AE-aria2c-%E4%BA%8C%E8%BF%9B%E5%88%B6%E6%96%87%E4%BB%B6%E6%A0%BC%E5%BC%8F%E9%94%99%E8%AF%AF-mach-o/574754/5">阅读整个主题</a></p>
]]></description>
<link>https://ygobbs2.com/t/bug-mycard-linux-%E7%89%88-v3077-%E5%86%85%E7%BD%AE-aria2c-%E4%BA%8C%E8%BF%9B%E5%88%B6%E6%96%87%E4%BB%B6%E6%A0%BC%E5%BC%8F%E9%94%99%E8%AF%AF-mach-o/574754/5</link>
<pubDate>Thu, 19 Mar 2026 19:52:28 +0000</pubDate>
<guid isPermaLink="false">ygobbs2.com-post-574754-5</guid>
<source url="https://ygobbs2.com/t/bug-mycard-linux-%E7%89%88-v3077-%E5%86%85%E7%BD%AE-aria2c-%E4%BA%8C%E8%BF%9B%E5%88%B6%E6%96%87%E4%BB%B6%E6%A0%BC%E5%BC%8F%E9%94%99%E8%AF%AF-mach-o/574754.rss">[BUG] MyCard Linux 版 (v3.0.77) 内置 aria2c 二进制文件格式错误 (Mach-O)</source>
</item>
<item>
<title>[BUG] MyCard Linux 版 (v3.0.77) 内置 aria2c 二进制文件格式错误 (Mach-O)</title>
<dc:creator><![CDATA[fl0]]></dc:creator>
<description><![CDATA[
<p>同时还有个小 BUG ,<code>~/.confg/MyCardLibrary</code> 需要手动创建目录,否则还是会下载失败。</p>
<p><a href="https://ygobbs2.com/t/bug-mycard-linux-%E7%89%88-v3077-%E5%86%85%E7%BD%AE-aria2c-%E4%BA%8C%E8%BF%9B%E5%88%B6%E6%96%87%E4%BB%B6%E6%A0%BC%E5%BC%8F%E9%94%99%E8%AF%AF-mach-o/574754/4">阅读整个主题</a></p>
]]></description>
<link>https://ygobbs2.com/t/bug-mycard-linux-%E7%89%88-v3077-%E5%86%85%E7%BD%AE-aria2c-%E4%BA%8C%E8%BF%9B%E5%88%B6%E6%96%87%E4%BB%B6%E6%A0%BC%E5%BC%8F%E9%94%99%E8%AF%AF-mach-o/574754/4</link>
<pubDate>Thu, 19 Mar 2026 16:34:18 +0000</pubDate>
<guid isPermaLink="false">ygobbs2.com-post-574754-4</guid>
<source url="https://ygobbs2.com/t/bug-mycard-linux-%E7%89%88-v3077-%E5%86%85%E7%BD%AE-aria2c-%E4%BA%8C%E8%BF%9B%E5%88%B6%E6%96%87%E4%BB%B6%E6%A0%BC%E5%BC%8F%E9%94%99%E8%AF%AF-mach-o/574754.rss">[BUG] MyCard Linux 版 (v3.0.77) 内置 aria2c 二进制文件格式错误 (Mach-O)</source>
</item>
<item>
<title>[BUG] MyCard Linux 版 (v3.0.77) 内置 aria2c 二进制文件格式错误 (Mach-O)</title>
<dc:creator><![CDATA[fl0]]></dc:creator>
<description><![CDATA[
<p>在 <code>app/download.service.ts</code> 的 <code>getAria2cPath()</code> 函数中:</p>
<pre><code class="lang-auto"> case 'linux':
return '/usr/bin/aria2c';
</code></pre>
<p>看起来 MyCard Linux 端是需要用户手动下载 aria2c 的?</p>
<p><a href="https://ygobbs2.com/t/bug-mycard-linux-%E7%89%88-v3077-%E5%86%85%E7%BD%AE-aria2c-%E4%BA%8C%E8%BF%9B%E5%88%B6%E6%96%87%E4%BB%B6%E6%A0%BC%E5%BC%8F%E9%94%99%E8%AF%AF-mach-o/574754/3">阅读整个主题</a></p>
]]></description>
<link>https://ygobbs2.com/t/bug-mycard-linux-%E7%89%88-v3077-%E5%86%85%E7%BD%AE-aria2c-%E4%BA%8C%E8%BF%9B%E5%88%B6%E6%96%87%E4%BB%B6%E6%A0%BC%E5%BC%8F%E9%94%99%E8%AF%AF-mach-o/574754/3</link>
<pubDate>Thu, 19 Mar 2026 16:31:52 +0000</pubDate>
<guid isPermaLink="false">ygobbs2.com-post-574754-3</guid>
<source url="https://ygobbs2.com/t/bug-mycard-linux-%E7%89%88-v3077-%E5%86%85%E7%BD%AE-aria2c-%E4%BA%8C%E8%BF%9B%E5%88%B6%E6%96%87%E4%BB%B6%E6%A0%BC%E5%BC%8F%E9%94%99%E8%AF%AF-mach-o/574754.rss">[BUG] MyCard Linux 版 (v3.0.77) 内置 aria2c 二进制文件格式错误 (Mach-O)</source>
</item>
<item>
<title>[BUG] MyCard Linux 版 (v3.0.77) 内置 aria2c 二进制文件格式错误 (Mach-O)</title>
<dc:creator><![CDATA[fl0]]></dc:creator>
<description><![CDATA[
<p>项目的 CI 缺少 Linux 的构建流程中原生二进制组件的prepare stage。<br>
<em><a href="https://code.moenext.com/mycard/mycard/-/blob/v3/.gitlab-ci.yml" rel="noopener nofollow ugc">https://code.moenext.com/mycard/mycard/-/blob/v3/.gitlab-ci.yml</a></em></p>
<p>建议打包<code>aria2c</code> (Linux ELF)。鉴于现代 Linux 发行版通常已内置<code>GNU tar</code>、<code>zstd</code> 可以不用打包。</p>
<p><a href="https://ygobbs2.com/t/bug-mycard-linux-%E7%89%88-v3077-%E5%86%85%E7%BD%AE-aria2c-%E4%BA%8C%E8%BF%9B%E5%88%B6%E6%96%87%E4%BB%B6%E6%A0%BC%E5%BC%8F%E9%94%99%E8%AF%AF-mach-o/574754/2">阅读整个主题</a></p>
]]></description>
<link>https://ygobbs2.com/t/bug-mycard-linux-%E7%89%88-v3077-%E5%86%85%E7%BD%AE-aria2c-%E4%BA%8C%E8%BF%9B%E5%88%B6%E6%96%87%E4%BB%B6%E6%A0%BC%E5%BC%8F%E9%94%99%E8%AF%AF-mach-o/574754/2</link>
<pubDate>Thu, 19 Mar 2026 16:24:27 +0000</pubDate>
<guid isPermaLink="false">ygobbs2.com-post-574754-2</guid>
<source url="https://ygobbs2.com/t/bug-mycard-linux-%E7%89%88-v3077-%E5%86%85%E7%BD%AE-aria2c-%E4%BA%8C%E8%BF%9B%E5%88%B6%E6%96%87%E4%BB%B6%E6%A0%BC%E5%BC%8F%E9%94%99%E8%AF%AF-mach-o/574754.rss">[BUG] MyCard Linux 版 (v3.0.77) 内置 aria2c 二进制文件格式错误 (Mach-O)</source>
</item>
<item>
<title>[BUG] MyCard Linux 版 (v3.0.77) 内置 aria2c 二进制文件格式错误 (Mach-O)</title>
<dc:creator><![CDATA[fl0]]></dc:creator>
<description><![CDATA[
<p>项目相关:MyCard-3.0.77.AppImage<br>
运行环境:Arch Linux (x86_64)<br>
错误现象:在使用 MyCard 下载 YGOPRO2 时,调用 aria2c 失败,终端返回 32 错误码。</p>
<h2>问题描述</h2>
<p>在 Linux 环境下运行 MyCard 客户端并尝试下载资源时,程序无法启动内置的 <code>aria2c</code> 进行下载任务。经过提取 AppImage 内容分析,确认该版本打包的可执行文件并非 Linux ELF 格式。</p>
<h2>复现步骤</h2>
<ol>
<li>在 Arch Linux (大概率任意发行版上)上运行 <code>MyCard-3.0.77.AppImage</code>。</li>
<li>尝试点击下载/更新 YGOPRO2。</li>
<li>观察到无法下载,系统报告执行错误。</li>
</ol>
<h2>调试信息</h2>
<p>通过提取 AppImage 镜像并使用 <code>file</code> 命令检查内置二进制文件:</p>
<pre><code class="lang-auto">$ ./MyCard-3.0.77.AppImage --appimage-extract
$ file ./squashfs-root/resources/bin/aria2c
</code></pre>
<p>实际输出:</p>
<blockquote>
<p><code>./squashfs-root/resources/bin/aria2c: Mach-O universal binary with 2 architectures: [x86_64: Mach-O 64-bit x86_64 executable] [arm64: Mach-O 64-bit arm64 executable]</code></p>
</blockquote>
<h2>原因分析</h2>
<p>该版本的 Linux AppImage 打包了 macOS 平台的 <strong>Mach-O</strong> 通用二进制文件(Universal Binary),而非 Linux 所需的 <strong>ELF</strong> 格式可执行文件。同时,资源目录中缺失了适用于 Linux 系统的 <code>aria2c</code> 副本,导致 Linux 内核在尝试 <code>execve</code> 时返回 <code>ENOEXEC</code> (32)。</p>
<h2>临时解决方案</h2>
<p>目前 Arch Linux 用户(及其其他发行版用户)可以通过安装系统原生的 <code>aria2</code> 并确保其路径在搜索范围内,或手动替换提取目录中的二进制文件来绕过此问题:</p>
<pre><code class="lang-auto">sudo pacman -S aria2
</code></pre>
<p><a href="https://ygobbs2.com/t/bug-mycard-linux-%E7%89%88-v3077-%E5%86%85%E7%BD%AE-aria2c-%E4%BA%8C%E8%BF%9B%E5%88%B6%E6%96%87%E4%BB%B6%E6%A0%BC%E5%BC%8F%E9%94%99%E8%AF%AF-mach-o/574754/1">阅读整个主题</a></p>
]]></description>
<link>https://ygobbs2.com/t/bug-mycard-linux-%E7%89%88-v3077-%E5%86%85%E7%BD%AE-aria2c-%E4%BA%8C%E8%BF%9B%E5%88%B6%E6%96%87%E4%BB%B6%E6%A0%BC%E5%BC%8F%E9%94%99%E8%AF%AF-mach-o/574754/1</link>
<pubDate>Thu, 19 Mar 2026 16:00:52 +0000</pubDate>
<guid isPermaLink="false">ygobbs2.com-post-574754-1</guid>
<source url="https://ygobbs2.com/t/bug-mycard-linux-%E7%89%88-v3077-%E5%86%85%E7%BD%AE-aria2c-%E4%BA%8C%E8%BF%9B%E5%88%B6%E6%96%87%E4%BB%B6%E6%A0%BC%E5%BC%8F%E9%94%99%E8%AF%AF-mach-o/574754.rss">[BUG] MyCard Linux 版 (v3.0.77) 内置 aria2c 二进制文件格式错误 (Mach-O)</source>
</item>
</channel>
</rss>