baronyan's blog

linux,macでruby、railsでの開発をしていく中で知ったこと、備忘的なことなどを書いていきます。

ubuntu12.04の共有ディレクトリにwindowsでファイルを置くと所有者とグループがnobodyになる問題の解決策

  1. GUIでの共有設定を切る
  2. /etc/samba/smb.conf に共有設定を入れる

[share]
path = ~/share
available = yes
browsable = yes
public = yes
writable = yes
force user = username #←ここが重要
force group = groupname #←ここが重要

ubuntu12.04でsamba共有をwindowsから見えるようにする

私が今作業しているネットワーク内には、ubuntuが載っている仮想マシンが複数あります。

インストール時に横着して全てhostname「ubuntu」でインストールしてしまっていたので名前が競合してしまい、windowsマシンから見えない仮想マシンが存在する状態でした。

 

そこで、下記のような手順でubuntu仮想マシンの名前が重複しないように修正を行いました。

 

sudo vi /etc/hostname

 →${new_hostname}に書き換える

(または sudo hostname ${new_hostname} )

sudo vi /etc/hosts

 →127.0.0.1 の行に${new_hostname}を追記する

 →127.0.1.1 の行を${new_hostname}に書き換える

   (初期値が ホスト名.ローカルドメイン名 になっている場合はホスト名部分の${new_hostname}への書き換え+${new_hostname}を追記)

再起動

 

※注意点

hostnameの文字数は15文字以下にすること(NetBIOS名の制限長=15文字)

 

今回はついでにworkgroupも合わせておきました。

sudo vi /etc/samba/smb.conf

 →workgroupで検索し、値を自分の使っているworkgroup名で書き換える

ubuntu12.04にvsftpdを入れる

sudo apt-get install vsftpd 

sudo vi /etc/vsftpd.conf 
 →下記のように編集
  • anonymous_enable=NO
  • local_enable=YES
  • write_enable=YES
  • ascii_upload_enable=YES
  • ascii_download_enable=YES 
  • userlist_enable=YES (追加行)
  • userlist_deny=NO (追加行)
  • userlist_file=/etc/vsftpd/user_list (追加行)
 
sudo vi /etc/vsftpd/user_list
 →ユーザー名追記
 
sudo restart vsftpd
 
sudo ufw allow ftp

ubuntu12.04(64bit)でpoltergeistを使う方法

前提条件:capybaraが使える状態(参考

 

まずphantomjsをインストールします。(参考ページ

cd /usr/local/share

sudo wget https://phantomjs.googlecode.com/files/phantomjs-1.9.0-linux-x86_64.tar.bz2

sudo tar xjf phantomjs-1.9.0-linux-x86_64.tar.bz2
sudo ln -s /usr/local/share/phantomjs-1.9.0-linux-x86_64/bin/phantomjs /usr/local/share/phantomjs

sudo ln -s /usr/local/share/phantomjs-1.9.0-linux-x86_64/bin/phantomjs  /usr/local/bin/phantomjs

sudo ln -s /usr/local/share/phantomjs-1.9.0-linux-x86_64/bin/phantomjs  /usr/bin/phantomjs


phantomjs --version

でバージョンが表示されたらインストール完了です。

 

 

Gemfileに追記します。

gem 'poltergeist'

 

rubyコード例です。

require 'capybara/poltergeist'

 

その他はcapybaraで使うブラウザがwebkitseleniumの場合と同様です。

webrickを使っていて遅いと感じた時の対処方法

~/.rvm/rubies/ruby-1.9.3-p448/lib/ruby/1.9.1/webrick/config.rb

を編集し、名前解決できるようにします。

 

修正後

:DoNotReverseLookup => true

 

参考:http://blog.setunai.net/20121120/webrickrails%E3%81%8C%E9%81%85%E3%81%84/

ubuntu12.04でcapybaraを使う方法

QTをインストールします。

sudo apt-get install libqt4-dev libqtwebkit-dev

 

Gemfileに下記を追記します。

gem 'capybara'
gem 'capybara-webkit', "~> 1.0.0"
gem 'selenium-webdriver'

 

あとはbundle installすればcapybaraを使えるようになります。

 

 

下記がコード例です。

require 'capybara'
require 'capybara-webkit'
require 'capybara/dsl'
require 'capybara/rspec'

WEB_DRIVER = :webkit

#WEB_DRIVER = :selenium
Capybara.default_driver = WEB_DRIVER

Capybara.default_wait_time = 2
include Capybara::DSL
include Capybara::RSpecMatchers

visit("http://example.com")

page.save_screenshot(#{FILE_PATH}, :full => true)

#明示的にNokogiriを使いたい場合

Nokogiri.parse(page.driver.html).xpath("//div[@class='hoge']")