<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
  <channel>
    <title>sven (菜鸟耗子)</title>
    <link>https://ruby-china.org/sven</link>
    <description></description>
    <language>en-us</language>
    <item>
      <title>ruby 操作 ldap 的 bind 方法错误</title>
      <description>&lt;pre class="highlight ruby"&gt;&lt;code&gt;&lt;span class="c1"&gt;#!/usr/bin/ruby -w&lt;/span&gt;
&lt;span class="nb"&gt;require&lt;/span&gt;  &lt;span class="s1"&gt;'ldap'&lt;/span&gt;

&lt;span class="vg"&gt;$HOST&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt;    &lt;span class="s1"&gt;'192.168.18.65'&lt;/span&gt;
&lt;span class="vg"&gt;$PORT&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt;    &lt;span class="no"&gt;LDAP&lt;/span&gt;&lt;span class="o"&gt;::&lt;/span&gt;&lt;span class="no"&gt;LDAP_PORT&lt;/span&gt;

&lt;span class="n"&gt;base&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s1"&gt;'ou=users,dc=case,dc=org'&lt;/span&gt;
&lt;span class="n"&gt;scope&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="no"&gt;LDAP&lt;/span&gt;&lt;span class="o"&gt;::&lt;/span&gt;&lt;span class="no"&gt;LDAP_SCOPE_SUBTREE&lt;/span&gt;
&lt;span class="n"&gt;filter&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s1"&gt;'(&amp;amp;(objectClass=caseAccount)(uid=case.lu@case.org))'&lt;/span&gt;
&lt;span class="n"&gt;attrs&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s1"&gt;'cn'&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;


&lt;span class="n"&gt;conn&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="no"&gt;LDAP&lt;/span&gt;&lt;span class="o"&gt;::&lt;/span&gt;&lt;span class="no"&gt;Conn&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;new&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="vg"&gt;$HOST&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="vg"&gt;$PORT&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="n"&gt;conn&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;bind&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;'cn=Manager,dc=case,dc=org'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="s1"&gt;'case'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="no"&gt;LDAP&lt;/span&gt;&lt;span class="o"&gt;::&lt;/span&gt;&lt;span class="no"&gt;LDAP_AUTH_SIMPLE&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="n"&gt;conn&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;perror&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;"bind"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="k"&gt;begin&lt;/span&gt;
  &lt;span class="n"&gt;conn&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;search&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;base&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;scope&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;filter&lt;/span&gt; &lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="n"&gt;attrs&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="o"&gt;|&lt;/span&gt;&lt;span class="n"&gt;entry&lt;/span&gt;&lt;span class="o"&gt;|&lt;/span&gt;
     &lt;span class="c1"&gt;# print distinguished name&lt;/span&gt;
     &lt;span class="nb"&gt;p&lt;/span&gt; &lt;span class="n"&gt;entry&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;dn&lt;/span&gt;
     &lt;span class="c1"&gt;# print all attribute names&lt;/span&gt;
     &lt;span class="nb"&gt;p&lt;/span&gt; &lt;span class="n"&gt;entry&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;attrs&lt;/span&gt;
     &lt;span class="c1"&gt;# print values of attribute 'sn'&lt;/span&gt;
     &lt;span class="nb"&gt;p&lt;/span&gt; &lt;span class="n"&gt;entry&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;vals&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;'cn'&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
     &lt;span class="c1"&gt;# print entry as Hash&lt;/span&gt;
     &lt;span class="nb"&gt;p&lt;/span&gt; &lt;span class="n"&gt;entry&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;to_hash&lt;/span&gt;
  &lt;span class="p"&gt;}&lt;/span&gt;

&lt;span class="k"&gt;rescue&lt;/span&gt; &lt;span class="no"&gt;LDAP&lt;/span&gt;&lt;span class="o"&gt;::&lt;/span&gt;&lt;span class="no"&gt;ResultError&lt;/span&gt;
  &lt;span class="n"&gt;conn&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;perror&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;"search"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
  &lt;span class="nb"&gt;exit&lt;/span&gt;
&lt;span class="k"&gt;end&lt;/span&gt;
&lt;span class="n"&gt;conn&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;perror&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;"search"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="n"&gt;conn&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;unbind&lt;/span&gt;


&lt;span class="n"&gt;报了如下错误就是bind方法那行&lt;/span&gt;&lt;span class="err"&gt;。&lt;/span&gt;
&lt;span class="n"&gt;deal_ldap&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;rb&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="mi"&gt;14&lt;/span&gt;&lt;span class="ss"&gt;:in&lt;/span&gt; &lt;span class="sb"&gt;`bind': Protocol error (LDAP::ResultError)
    from deal_ldap.rb:14:in `&lt;/span&gt;&lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="n"&gt;main&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt;&lt;span class="err"&gt;'&lt;/span&gt;
&lt;span class="n"&gt;报错了&lt;/span&gt;&lt;span class="err"&gt;，&lt;/span&gt;&lt;span class="n"&gt;不知道为啥&lt;/span&gt;&lt;span class="err"&gt;。&lt;/span&gt;&lt;span class="n"&gt;找不到原因&lt;/span&gt;&lt;span class="err"&gt;，&lt;/span&gt;&lt;span class="n"&gt;bind方法应该就是这样的吧&lt;/span&gt;&lt;span class="err"&gt;？？&lt;/span&gt;&lt;span class="n"&gt;或者有好的方法吗&lt;/span&gt;&lt;span class="err"&gt;？？&lt;/span&gt;&lt;span class="n"&gt;先谢谢啦&lt;/span&gt;&lt;span class="err"&gt;。&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;</description>
      <author>sven</author>
      <pubDate>Tue, 11 Mar 2014 18:29:37 +0800</pubDate>
      <link>https://ruby-china.org/topics/17809</link>
      <guid>https://ruby-china.org/topics/17809</guid>
    </item>
    <item>
      <title>关于 backup 执行报错。</title>
      <description>&lt;p&gt;&lt;code&gt;backup perform --trigger my_backup&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;这样是好的&lt;/p&gt;

&lt;p&gt;&lt;code&gt;sudo backup perform --trigger my_backup&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;这样就报错如下&lt;/p&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;/usr/local/lib/ruby/1.9.1/rubygems/dependency.rb:247:in &lt;span class="sb"&gt;`&lt;/span&gt;to_specs&lt;span class="s1"&gt;': Could not find backup (&amp;gt;= 0) amongst [] (Gem::LoadError)
    from /usr/local/lib/ruby/1.9.1/rubygems/dependency.rb:256:in `to_spec'&lt;/span&gt;
    from /usr/local/lib/ruby/1.9.1/rubygems.rb:1231:in &lt;span class="sb"&gt;`&lt;/span&gt;gem&lt;span class="s1"&gt;'
    from /usr/local/bin/backup:22:in `&amp;lt;main&amp;gt;'&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;我知道 gem 不支持 ruby-1.9.1 我把 1.9.1 都删掉了，可是还是会这样用 rvm remove 删掉的。。为什么会这样？？求解？&lt;/p&gt;</description>
      <author>sven</author>
      <pubDate>Sun, 01 Dec 2013 15:09:38 +0800</pubDate>
      <link>https://ruby-china.org/topics/15922</link>
      <guid>https://ruby-china.org/topics/15922</guid>
    </item>
    <item>
      <title>Ruby 书本好难买</title>
      <description>&lt;p&gt;###ruby 书买不到
求一本镐头书。为啥都不出版了。。&lt;/p&gt;</description>
      <author>sven</author>
      <pubDate>Wed, 04 Sep 2013 19:04:19 +0800</pubDate>
      <link>https://ruby-china.org/topics/13890</link>
      <guid>https://ruby-china.org/topics/13890</guid>
    </item>
  </channel>
</rss>
