糕飛.想點三十而立.努力發奮

2012年11月5日 星期一

令 Virtual Box 支援 USB device

+ 暫沒回應
之前寫的 VM 比較,最後因 VirtualBox 不支援 USB 而令我選擇用 VMWare Player。經朋友提點後才知道 VirtualBox 原來是支援 USB 的。不過要先做簡單的設定,就是將運行 VirtualBox 的使用者加進去 vboxusers 這個群組入面了。特此記下以免忘記。
繼續閱讀
2012年10月16日 星期二

VM on Ubuntu 比較

+ 3 個回應
雖然轉用了 Ubuntu ,但也不能完全不用 Windows:如要開啟 doc/xls 文件,Ubuntu 上的 Libre Office很多時會走位,不用 Microsoft Office。這時就要用 Virtual Machine ,在 Ubuntu 上「虛擬」一個 Windows 出來使用。
繼續閱讀
2012年8月24日 星期五

在 ubuntu 12.04 安裝 postgresql 9.1, 及 rails 的 設定

+ 暫沒回應
因為 Heroku 用的 database 是 postgres,但 tutorial 教的是用 sqlite,所以要自找資料去設定 postgres,免得 development environment 跟 production 的不一樣,又要費時再 debug。

安裝:
sudo apt-get install postgresql
之後執行以下指令,開始 postgres console:
sudo -u postgres psql postgres
設定 root password:
\password postgres
設定新用戶:
sudo -u postgres psql createuser
Enter name of role to add: ruby
Shall the new role be a superuser? (y/n) y

可用以下指令建立新資料庫:
sudo -u postgres createdb linuxdb

之後便可以用 client 連進去了,Ubuntu 下可以安裝 pgadmin3 這個 GUI client,command line 的實在不懂用...
sudo apt-get install pgadmin3
不過以上的只為 development,production 的話要有更多設定,不然被 hack 的話就...

Rails app config:

可以用 pgadmin3 連進去 db 以後,便新增一定使用者,加進 "Can create database object",沒加的話每次會不能自動 create database 的。

然後更新 /config/database.yml 如下:
development:
  adapter: postgresql
  database: DB_NAME
  username: USERNAME
  password: PASSWORD
  host: localhost
  encoding: utf8
  pool: 5
  timeout: 5000
其他的 environment (test, production) 也記緊跟著改,之後行 rake db:schema:load 和 rake db:test:prepare 便可以繼續 development 和 testing 了。

2012年8月23日 星期四

Note: 簡單有用的 linux commands

+ 暫沒回應
常用的 linux/mac terminal command:

# pwd
顯示自己所在的 directory

# ps -ef
顯示正在執行的 process,之後再用 kill 去殺掉它

# rm -r
刪除目錄及其內的檔案

# chmod -R, chown -R, chgrp -R
更新目錄和其內的檔案的權限、擁有者和群組

# top
顯示 cpu & memory 的使用情況

# ssh <username>@<host> -p <port>
用 ssh 連去其他主機

# scp -p <port> <username>@<host>:<remote file> <local dir>
透過 ssh 下載其他主機的檔案

# /etc/init.d/<service name> start/stop/restart
開始/停止/重啟某項 service

# ifconfig
顯示 ip 等資料

# tail -n <number> <file>, head -n <number> <file>
顯示 file 尾/頭 number 行列的資料


以下是 ubuntu 的筆記:

Host file location: /etc/hosts

set static ip: /etc/network/interfaces

restart network servies: /etc/init.d/networking restart

samba config location: /etc/samba/smb.conf

retstart samba: restart smbd



寫下來時發覺原來 command 不難,找出 config file 的位置才是最麻煩的。

2012年8月6日 星期一

在 Ubuntu 上燒碟

+ 暫沒回應
最近轉了 Ubuntu 12.04 LTS,什麼也是試試可否用 Ubuntu 完成。因工作關係要燒碟,於是在 launcher 中找找有沒有燒碟 software。



一輸入 Burn 就有 Brasero Disc Burner ,開啟後就是這樣




功能是比較陽春,不過就算有 Nero 這樣多功能,到最後其實只是想燒 data 而已,功能只要夠就好。

可惜,加上檔案開始燒錄,到最後竟然出現 Eject Disc Error ! 將碟彈出再入是讀不到,燒死碟!有多少年沒有試過了?

問一問 Google 大神,原來好多人遇過了。在 ubuntu 9.x 的年代已有,為什麼到 12.04 還是未解決?可惡。

然後大家就推廌 k3b ,在 kde 的燒碟軟件,




感覺像樣一點,而且最重要是燒碟成功!
唯一缺點是因為設計在 KDE 上,install 時需要安裝很多 library ,浪費了不少硬碟空間,感覺不夠完美。當然,現在的 linux 也只需一句 command 便能裝上所有東西:
sudo apt-get install k3b
2012年8月4日 星期六

使用 Ubuntu 代替 Windows

+ 暫沒回應
為了學習  Ruby on Rails ,最近為 Desktop 裝上 Ubuntu 。Ubuntu 作為眾多 linux distribution 之一,其賣點是最 user friendly,介面亦做到跟 Windows / Mac OS X 相近。就算對 linux 完全沒有概念,亦很容易上手。中文支援亦無甚大問題,等了這麼多年,終於有套 linux distribution 是可以取替 Windows 了。

不過對於一般使用者,Ubuntu 還是有很多細微又奇怪的問題,不易解決,亦令普通者卻步,如安裝中文輸入法、很多情況下需使用 terminal 等。用 Ubuntu 取代 Windows 還需要一點時間。

為了學習,我會一直使用 linux,畢竟在 Ruby on Rails 上用 linux 上方便一點,而且學好 linux 遲點要 configure server 也很有用。另外很多人說用 mac 機更好,或許遲點有錢的話買 Mac 來用吧。

用熟後寫一個代替 windows 的 software list 吧。
2012年6月16日 星期六

vsftpd 的設定

+ 暫沒回應
看了不少文章,終於弄妥了 Ubuntu 12.04 64bits 中設定 vsftpd 。因為不想為每一個 ftp users 開 local account,打算用 virtual users 作 download 之用 (Upload 則用 sftp)。網上有很多教學文章,但參考完後還是不得要領,最後花了不少時間 trials and errors 才弄妥。特此記下以作筆記。

以下內容主要是參考這個這個的。
  1. 安裝 vsftpd
    sudo install vsftpd
  2. 建立一個新 User,所有 vritual users 會以此 users 作登入
    # Don't use -m (--create-home) option. This avoids creating a home
    # directory based on /etc/skel (.bash* and .profile files).
    sudo useradd -d /home/work workers
    sudo mkdir /home/work
    sudo chown workers /home/work
  3. 建立 virutal users 的 config directory
    sudo mkdir /etc/vsftpd
    
    sudo mkdir /etc/vsftpd/vusers
  4. 開以修改 vsftpd 的設定。修改 /etc/vsftpd.conf 文件
    sudo vi /etc/vsftpd.conf
  5. 修改以下的設定,如原 file 沒有的便加上去
    # Disable anonymous_enable is optional.
    anonymous_enable=NO
    ...
    local_enable=YES
    ...
    pam_service_name=vsftpd
    # Enable (only) guests.
    guest_enable=YES
    # This is not needed, it's the default. Just here for clarity.
    guest_username=ftp
    # Where the guests (virtual) usernames are set.
    user_config_dir=/etc/vsftpd/vusers
    
  6. 建立 virtual user 的設定,為方便管理,會將各 users 的設定以 symbolic link 的形式連結到一共同的檔案上。建立設定檔。
    sudo vi /etc/vsftpd/workers
  7. 輸入以下內容
    write_enable=YES
    
    anon_mkdir_write_enable=YES
    
    anon_other_write_enable=YES
    
    anon_upload_enable=YES
    
    local_root=/home/work
    
    chroot_local_user=YES
    
    dirlist_enable=YES
    
    download_enable=YES
    
    guest_username=workers
  8. 為每個 virtual users 建立 symbolic link,如有 mike 和 sarah,則
    sudo ln -s /etc/vsftpd/workers /etc/vsftpd/vusers/mike
    sudo ln -s /etc/vsftpd/workers /etc/vsftpd/vusers/sarah
  9. 我們用 PAM 來儲存 virtual users 的密碼,所以要修改 /etc/pam.d/vsftpd
    sudo vi /etc/pam.d/vsftpd
  10. 將裏面的 code 改成
    @include common-session
    auth    required pam_pwdfile.so pwdfile /etc/vsftpd/passwd
    account required pam_permit.so
    其他的可以 comment 掉。
    (這個 file 花了我很多時間,試過跟著別人的 config 來設定 Server 會直接 close connection,看 syslog 說 vsftpd segfault,丈八金鋼摸不著頭腦。還以為要用 32 bits library,安裝後還是一樣,最後發覺 @include common-session 不能 comment 掉!)
  11. 為 virtual users 建立密碼
    perl -e '$salt=q($1$).int(rand(1e8)); print "password: "; chomp($passwd=<STDIN>); print crypt($passwd,$salt),"n"'
    

    執行後複製密碼
    (用 pam_pwdfile 要用以上方式產生密碼,用 htpasswd generate 出來的不行,又費了我幾天時間!)
  12. 將複製了的密碼貼上 /etc/vsftpd/passwd 的檔案裏,一行為一個 user,用以下的格式
    username1:password1
    username2:password2
  13. 重啟 vsftpd
    sudo service vsftpd restart
  14. 用 ftp client 試試看吧。

Troubleshoot:
  • 如出現 server closed the connection ,可能是 /etc/pam.d/vsftpd 出現問題。
  • 如出現 500 OOPS: vsftpd: refusing to run with writable root inside chroot() ,則是沒有在 /etc/vsftpd/vusers/ 下建立 user 的設定檔。
  • 如出現 login incorrect 錯誤,則是 passwd 檔錯誤。記緊若用 pam_pwdfile 的話不要用 htpasswd 來建立密碼,要用上面的 script 呀!
    顯示具有 linux 標籤的文章。 顯示所有文章
    顯示具有 linux 標籤的文章。 顯示所有文章