gpt4 book ai didi

ruby - 树莓派安装SiriProxy : Error on installing Eventmachine 1. 0.0 Ruby Gem

转载 作者:太空宇宙 更新时间:2023-11-03 16:54:05 25 4
gpt4 key购买 nike

我是 Raspberry Pi 和 Linux 的新手,想安装 SiriProxy。

我按照本指南中的步骤操作:http://www.idownloadblog.com/2011/12/09/how-to-install-siri-proxy-tutorial-video/

完成所有步骤后,我遇到了一个错误,指出在当前机器上找不到 eventmachine。

当我以 root 用户运行 gem install eventmachine -v 1.0.0 时,它返回:

    root@raspberrypi:/var/lib/gems/1.9.1/gems# gem install eventmachine
Building native extensions. This could take a while...
ERROR: Error installing eventmachine:
ERROR: Failed to build gem native extension.

/usr/bin/ruby1.9.1 extconf.rb
/usr/lib/ruby/1.9.1/rubygems/custom_require.rb:36:in `require': cannot load such file -- mkmf (LoadError)
from /usr/lib/ruby/1.9.1/rubygems/custom_require.rb:36:in `require'
from extconf.rb:2:in `<main>'


Gem files will remain installed in /var/lib/gems/1.9.1/gems/eventmachine-1.0.0 for inspection.
Results logged to /var/lib/gems/1.9.1/gems/eventmachine-1.0.0/ext/gem_make.out

如果有人有任何建议,我将不胜感激,正如我所说的,我是新手,所以对复杂术语的解释会很有帮助。 :)

编辑:好吧,我已经能够通过在/root/SiriProxy/bin/目录中运行“bundle”来解决这个错误。这碰巧安装了 SiriProxy 所需的每个 gem。运行“ruby siriproxy server”返回:

root@raspberrypi:~/SiriProxy/bin# ruby siriproxy server
Starting SiriProxy on port 443..
SiriProxy up and running.

尽管从 iPhone(5,未越狱,无 VPN,在同一 WIFI 网络上)发送语音数据包时,我收到此错误:

Create server for iPhone connection
/var/lib/gems/1.9.1/gems/eventmachine-1.0.0/lib/em/connection.rb:411:in `block in start_tls': Could not find /root/.siriproxy/server.passless.key for start_tls (EventMachine::FileNotFoundException)
from /var/lib/gems/1.9.1/gems/eventmachine-1.0.0/lib/em/connection.rb:409:in `each'
from /var/lib/gems/1.9.1/gems/eventmachine-1.0.0/lib/em/connection.rb:409:in `start_tls'
from /root/SiriProxy/lib/siriproxy/connection/iphone.rb:15:in `post_init'
from /var/lib/gems/1.9.1/gems/eventmachine-1.0.0/lib/em/connection.rb:58:in `block in new'
from /var/lib/gems/1.9.1/gems/eventmachine-1.0.0/lib/em/connection.rb:49:in `instance_eval'
from /var/lib/gems/1.9.1/gems/eventmachine-1.0.0/lib/em/connection.rb:49:in `new'
from /var/lib/gems/1.9.1/gems/eventmachine-1.0.0/lib/eventmachine.rb:1462:in `event_callback'
from /var/lib/gems/1.9.1/gems/eventmachine-1.0.0/lib/eventmachine.rb:187:in `run_machine'
from /var/lib/gems/1.9.1/gems/eventmachine-1.0.0/lib/eventmachine.rb:187:in `run'
from /root/SiriProxy/lib/siriproxy.rb:16:in `initialize'
from /root/SiriProxy/lib/siriproxy/command_line.rb:96:in `new'
from /root/SiriProxy/lib/siriproxy/command_line.rb:96:in `start_server'
from /root/SiriProxy/lib/siriproxy/command_line.rb:85:in `run_server'
from /root/SiriProxy/lib/siriproxy/command_line.rb:37:in `initialize'
from siriproxy:6:in `new'
from siriproxy:6:in `<main>'

在检查有问题的目录(/root/.siriproxy/)后,我只找到了配置文件:

root@raspberrypi:~/SiriProxy/bin# cd /root/.siriproxy/
root@raspberrypi:~/.siriproxy# ls
config.yml
root@raspberrypi:~/.siriproxy# cd /home/pi/.siriproxy/
root@raspberrypi:/home/pi/.siriproxy# ls
config.yml

在文件系统中搜索文件未返回任何结果:

root@raspberrypi:/home/pi/.siriproxy# find / -name server.passless.key
root@raspberrypi:/home/pi/.siriproxy#

有人知道我在哪里可以找到这些文件/解决这个错误吗?

最佳答案

我们会解决这个问题,但这里有一些事情可以消除可能的贡献者。

确保连接以太网并在启动时保持连接状态
- 如果在启动期间未连接以太网,RPi 将不会配置以太网。
- 如果连接在引导期间未连接或在引导后断开连接,则默认 RPi 接口(interface)文件不包含使以太网重新启动的行。自动 eth0

一旦知道 RPi 应该使用哪个地址,就尝试使用 ping 命令从 RPi 获取响应ping xxx.xxx.xxx.xxx

将/etc/network/interfaces 文件更改回使用 DHCP
- 注释掉静态地址行
- 取消注释 DHCP 行,看起来像这样

auto eth0
iface eth0 inet dhcp

重启树莓派

重新启动后,确定您的路由器分配的 IP 地址
- 输入
ifconfig
- 例子

eth0     Link encap:Ethernet  HWaddr 00:11:22:33:44:55   
inet addr:192.168.69.97 Bcast:192.168.69.255 Mask:255.255.255.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:7015 errors:0 dropped:0 overruns:0 frame:0
TX packets:4236 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:861497 (841.3 KiB) TX bytes:849687 (829.7 KiB)

在/etc/dnsmasq.conf 默认文件中添加一行。
- 例子地址=/guzzoni.apple.com/192.168.69.97

重启 DNSMASQ
- 类型sh/etc/init.d/dnsmasq 重启

确保/root/.siriproxy/ca.pem 文件在您的 iOS 设备上

关闭 iOS 设备上的蜂窝数据连接,并保持关闭状态

切换飞行模式,离开至少 5 秒

在您的 iOS 设备上,告诉它忘记您的 Wifi 连接

重新连接到您的 Wifi SSID

连接后,点击 wifi 连接的详细信息页面,仅更改 DNS 地址以指向上面确定的 RPI 地址
- 更改后,点击后退按钮,然后再次点击详细信息以查看保留的 DNS 设置。
- 您想要切换飞行模式并确认再次保留 DNS 设置。

有时需要多次尝试才能让手机第一次连接到 SiriProxy
- 几乎就像 iPhone 在实际尝试 wifi 连接之前必须先通过蜂窝连接超时。
- 如果第一次尝试没有立即开始连接,请等待几秒钟,退出 Siri 界面并重新启动 Siri。
- 我认为 ios 6.0.2 制造的问题比解决的问题多,因为以前没有这么麻烦。

如果此时它可以正常工作,您将需要尝试配置/etc/network/interfaces 文件以使用静态 IP 地址
- 注释掉 DHCP 行
- 示例(确保将列排成一行并按相同顺序排列)

auto eth0 
iface eth0 inet static
address 192.168.69.97
netmask 255.255.255.0
broadcast 192.168.69.255
network 192.168.69.0
gateway 192.168.69.1

如果这不起作用,那么也许您的 ISP (U-Verse) 不喜欢您使用静态 IP 地址。

如果您的路由器由 ATT 提供,则 dd-wrt ​​透明 DNS 重定向不是一个选项

关于ruby - 树莓派安装SiriProxy : Error on installing Eventmachine 1. 0.0 Ruby Gem,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14078332/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com