- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我是 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/
我的控制台上出现以下错误 root@comp09:~# gem install eventmachine Building native extensions. This could take a
我在 JRuby 中安装了 EventMachine(我使用的是 Win32)。当我尝试服务器示例时,出现错误 require 'eventmachine' 错误是: C:\dev\em>jruby
我有一些 Deferrables,当它们全部完成时我需要在回调中做一些事情。 defers[0].callback do defers[1].callback do defer
我正在编写一个应用程序,它使用 EventMachine 来中继来自服务的命令。我想重新使用与服务的连接(而不是为每个新请求重新创建它)。该服务从模块方法启动,并且该模块提供给 EventMachin
更新: 我找到了简单的答案,这完全是我自己的错:我将上面的代码存储在一个名为“eventmachine.rb”的文件中。因此,当我需要“eventmachine”时,它只是导入了相同的文件,其中不包含
好的,我有代码在后台使用 Cramp\Tramp => EventMachine。代码: class RetrieveController 0.12' gem 'tramp', '~> 0.2' g
每个人总是明确提到 next_tick 将在主线程中执行。但是定时器和回调/错误反馈呢?它们是否也保证在主线程中运行? 最佳答案 无论 Ruby 版本如何,EM 在 react 器线程内运行除 EM.
在 ruby 1.9.2-p290 上编译 eventmachine 0.12.10 时出现以下错误输出: g++ -shared -o rubyeventmachine.so binder.o cm
我收到以下错误: eventmachine.rb:534:in `start_tcp_server': no acceptor (port is in use or requires root pri
我有一个使用 eventmachine 编写的小型 HTTP 服务器脚本,它需要调用外部脚本/命令并通过反引号 (``) 调用。当提供不运行反引号代码的请求时,一切都很好,但是,一旦我的 EM 代码执
我写了一个像这样的简单的 EventMachine 服务器: EventMachine.run do EventMachine::WebSocket.start(:host => HOST, :p
“run” block 是否在 EM 中作为一个整体执行(没有上下文切换)?在此示例中,if 子句中是否存在竞争条件? EventMachine.run { @current_value = 0
获取端口已在使用错误。 require 'em-websocket' EM.run { EM::WebSocket.run(:host => "192.168.1.100", :port =>
我对一般编程还很陌生,我在客户端和服务器端都使用 EventMachine 来打开它们之间的 websocket 连接。 我的问题出在客户端,以及由于网络连接问题导致连接丢失时。 def websoc
如何终止 EventMachine 中正在运行的进程?下面是一个示例,我正在启动 10 个进程,然后我试图将它们全部删除(但它不起作用)。我的目标是不要有“完成”输出。 require "rubyge
我使用 EventMachine LineText2 协议(protocol),我想在每次按下键盘上的字符时触发 receive_line 方法,而不仅仅是在输入新行时触发。有没有办法改变这种默认行为
这是我的代码: EventMachine.run { conn = EM::Protocols::HttpClient2.connect request.host, 80 req =
我正在研究使用 EventMachine 支持的 twitter-stream rubygem 来跟踪和捕获推文。我对整个事件编程有点陌生。我如何判断我在事件循环中所做的任何处理是否导致我落后?有
我的第一个问题是关于 Ruby 的。我正在尝试测试 Reactor 循环内的 EventMachine 交互 - 我想它可以归类为“功能”测试。 假设我有两个类 - 服务器和客户端。我想测试双方 -
我正在使用合适的 Redis EM gem(在我的例子中为“em-hiredis”)读取 EventMachine react 器循环中的 Redis 集,并且必须检查某些 Redis 集是否包含级联
我是一名优秀的程序员,十分优秀!