2014年3月25日

ruby正则

下面一行被我用正则匹配出来了,我还真佩服自己的耐心!
2014-03-05T03:49:43+08:00 autelanmaster eag1_0[1421]: eag_radius.c:1002:RadiusAcctRequestUpdate___UserName:73570,UserIP:20.3.141.241,Sessiontime:7200,SSID:shanlink,authtype:Portal,ApMAC:00-1F-64-EB-7C-CC,UserMAC:F8-A4-5F-C8-E9-B3,NasID:1
用ruby写的代码如下(其实我的编码水平就是个菜头):
  1 #!/usr/bin/env ruby
  2 #
  3 str = '2014-03-05T03:49:43+08:00 autelanmaster eag1_0[1421]: eag_radius.c:1002:RadiusAcctRequestUpdate___UserName:73570,UserIP:20.3.141.241,Sessiontime:7200,SSID:shanlink,authtype:Portal,ApMAC:00-1F-64-EB-7C-CC,UserMAC:F8-A4-5F-C8-E9-B3,NasID:1'
  4 value = str.match /(^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}\+\d{2}:\d{2}) (\w+)\s(\w+\d_\d\[\d{4}\]:)\s(\w+_\w+\.\w:\d+:\w+__\w+:\d+\,\w+:)(\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3})(\,\w+:\d+,\w+:)(shanlink)(,\w+:\w+,\w+:)([0-9A-F]{2}-[0-9A-F]{2}-[0-9A-F]{2}-[0-9A-F]{2}-[0-9A-    F]{2}-[0-9A-F]{2})(\,\w+:)([0-9A-F]{2}-[0-9A-F]{2}-[0-9A-F]{2}-[0-9A-F]{2}-[0-9A-F]{2}-[0-9A-F]{2})(\,\w+:\d)$/
  5 puts value[1, 5, 9, 12]

我要得到的结果是value的 [1,5,9,11] .这段代码还不是正确的。不过要拿出来已经很容易了。
应该有更好的办法的,只是我现在不知道而已!

2014年3月16日

osx10.6.8无法安装homebrew

IN[/data/software]>>>ruby homebrew.rb
==> This script will install:
/usr/local/bin/brew
/usr/local/Library/...
/usr/local/share/man/man1/brew.1

Press ENTER to continue or any other key to abort
==> /usr/bin/sudo /bin/mkdir /usr/local
==> /usr/bin/sudo /bin/chmod g+rwx /usr/local
==> /usr/bin/sudo /usr/bin/chgrp admin /usr/local
==> Downloading and Installing Homebrew...
dyld: Library not loaded: /usr/lib/libcurl.4.dylib
  Referenced from: /usr/libexec/git-core/git-remote-https
  Reason: Incompatible library version: git-remote-https requires version 7.0.0 or later, but libcurl.4.dylib provides version 6.0.0
Failed during: git fetch origin master:refs/remotes/origin/master -n

安装了 Snow Leopard 10.6.7后, 要使用brew来安装一些软件。我的办法就是将homebrew.rb文件下载下来,然后运行。不过运行过程出现上面的错误信息。
出现这个错误信息是因为curl的版本太低,无法运行git来下载。我的办法就是在网上下载一个最新的curl下来,然后自己编译安装(一开始是没有编译器的,要安装XCODE才可以). 记得要使用--prefix将它指定到一个地方,这样方便查找。编译完成后执行下面的命令:

mv /usr/lib/libcurl.4.dylib /usr/lib/libcurl.4.dylib.old   #将其改名字
ln -s /curl/install/diretcory/lib/libcurl.4.dylib /usr/lib/ #将编译好的curl下的lib/libcurl.4.dylib目录软链接到/usr/lib目录下


再一次运行 ruby homebrew.rb 就成功了!

git证书

昨天在安装ruby2.0的时候无法安装,再想下因为之前装了xcode3.2.1和xcode4,觉得是编译的版本问题,然后在/Developer/Library下运行那两个uninstall脚本将全部都删除。
然后再使用brew的时候就出现了下面的错误情况:
minixs-MacBook-Pro% brew update
Initialized empty Git repository in /usr/local/.git/
fatal: unable to access 'https://github.com/Homebrew/homebrew.git/': SSL certificate problem: unable to get local issuer certificate
Error: Failure while executing: git fetch origin

一开始觉得是git使用了curl来拉github.com上面的东西,因为没证书导致出现,因为curl可以使用参数--cacert来指定证书文件,所以拼命在找/usr/local/Library/Homebrew/目录下的所有文件,看下里面有没curl,有的话就加上这个参数。哪知道都没有!
搞了一会后再想下,因为github.com是使用https来传输,那git也有可以是缺少证书才不能连,然后根据这个线索上google搜索
"git SSL certificate problem: unable to get local issuer certificate"
然后得到了一个正确的结果:
git config --system http.sslcainfo /usr/share/ssl/cacert.pem
这样的意思是加上sslcainfo的信息,而/usr/share/ssl/cacert.pem文件是网上下载的。运行上面一行后再运行
brew update
就成功了!唉!

2014年3月2日

OSX安装其它版本xcode

  我的macbook是10年买的,前天之前都是使用10.9.1,用起来觉得不是很顺畅。因为10.6.7是刚买回来时默认安装的系统,而且还送了一个10.6.7的安装DVD,我昨天就拿来重装了。很悲剧的一件事就是APPLE官方不会再对10.6进行维护。如果打开APP STORE来进行更新,是无法找到任何可用的更新的。我只能上网找10.6.8的更新包和一些可以安全更新下载安装。
  如果要使用到brew来安装软件的话,必须得安装xcode或GCC来。我不喜欢GCC,只能用XCODE了,不过带UI的XCODE太大了,有4G左右。而xcode command line tool 3.2.6又不到。使用xcode 4.XX以上版本又无法安装。 刚好在一个Blog上看到可以使用高版本的XCODE来将到10.6.8上。我试过安装可以,就将过程写出来,供以看重装系统时方便安装。
  1. 下载一个高版本的command line tool for xcode 
  2. 点击下载好的command line tool for xcode,点击后就会被挂载。使用Terminal进入/Volumes/下可以看到可以看到 
  3. 运行下面的命令
      cd mkdir osx-gcc cd /Volumes/Command\ Line\ Tools 
      cp -r * ~/osx-gcc cd ~/osx-gcc 
      mkdir pkg 
      mv Command\ Line\ Tools.mpkg pkg/install.mpkg 
      cd pkg 
      xar -xvf install.mpkg
    上面的意思是“创建一个目录(这里是osx-gcc),将挂载出来的XCODE的内容全部复制到osx-gcc下。在osx-gcc目录下再创建一个pkg目录,将文件Command\ Line\ Tools.mpg移到pkg目录下改名为install.mpkg并解压缩

  4. 解压缩后会编辑文件Distribution,将里面第10行的
      var majorOSVersion = '10.7';
     改为
      var majorOSVersion = '10.6';
     然后保存。
     因为我是下载Lion版本的xcode, 所以majorOSVersion = '10.7'

  5. 恢复安装内容
      rm install.mpkg 
      xar -c . -vf ../install.mpkg 
      cd .. open install.mpkg
     这里是将pkg目前下的install.mpkg文件删除,然后重新压缩并放到上一级目前,也就是osx-gcc目前下面,退回到osx-gcc目前下运行刚压缩的install.mpkg。 这时候就会弹安装提示框,按提示点击下一步可以了。

  6. 安装过程完毕。

 其实里面最重要的就是修改Distribution里面的版本信息然后再重新打包安装!