2013年4月27日 星期六

Can't locate SVN/Core.pm in @INC

From Evernote:

Can't locate SVN/Core.pm in @INC

Git實在是越用越順手,現在連SVN跟本都不想用

還好Git還有另一個指令,Git-svn 他的操作基本上跟Git沒什麼太大的差異

如要clone一個專案,你只需要下:

$ git svn clone [your url]

就是這麼簡單,不過

你一定要安裝Xcode上的「Command Line Tools」不然就會出現以下錯誤訊息:

Can't locate SVN/Core.pm in @INC (@INC contains: /usr/local/Cellar/git/1.8.2.1/lib /Library/Perl/5.12/darwin-thread-multi-2level /Library/Perl/5.12 /Network/Library/Perl/5.12/darwin-thread-multi-2level /Network/Library/Perl/5.12 /Library/Perl/Updates/5.12.4 /System/Library/Perl/5.12/darwin-thread-multi-2level /System/Library/Perl/5.12 /System/Library/Perl/Extras/5.12/darwin-thread-multi-2level /System/Library/Perl/Extras/5.12 .) at /usr/local/Cellar/git/1.8.2.1/lib/Git/SVN/Utils.pm line 6.
BEGIN failed--compilation aborted at /usr/local/Cellar/git/1.8.2.1/lib/Git/SVN/Utils.pm line 6.
Compilation failed in require at /usr/local/Cellar/git/1.8.2.1/lib/Git/SVN.pm line 26.
BEGIN failed--compilation aborted at /usr/local/Cellar/git/1.8.2.1/lib/Git/SVN.pm line 33.
Compilation failed in require at /usr/local/Cellar/git/1.8.2.1/libexec/git-core/git-svn line 25.
BEGIN failed--compilation aborted at /usr/local/Cellar/git/1.8.2.1/libexec/git-core/git-svn line 25



安裝順序如下:
1.你一定要有安裝Xcode 最新版
2.開啟XCode -> Preferences -> Downloads ->選擇「Command Line Tools」點擊Install 



裝完在試就ok了。

2013年4月24日 星期三

Ubuntu 9.10 vsftpd 基於MySQL虛擬使用者建立

Ubuntu 9.10 vsftpd 基於MySQL虛擬使用者建立

Ubuntu 9.10 vsftpd 基於MySQL虛擬使用者建立

首先建立一個 vsftpd使用的Linux 帳號。
# useradd ftp
MySQL建立一個屬於 vsftpd使用的資料庫。
在資料庫裡新增三個欄位,分別為 ID、Name 、Password
而 ID為PRIMARY KEY ,自動遞增,不可為空。
而 Name不可為空,也不可重覆。
而 Password不可為空。如下:
建立資料庫:
CREATE DATABASE 資料庫名稱 ;
建立資料表:
CRETE TABLE '資料表名稱' ('ID' INT NOT NULL AUTO_INCREMENT PRIMARY KEY ,
                         'Name'  VARCHAR(30) NOT NULL ,
                         'Password' VARCHAR(50) NOT NULL , UNIQUE('Name')
                        )ENGINE=MYISAM ;
新增資料:
INSERT INTO '資料表名稱'  ('Name'  , 'Password') VALUES ( '新增的帳號'  , PASSWORD('新增帳號的密碼'));
資料庫新增完後。
修改 /etc/pam.d/vsftpd
內容為:
auth required pam_mysql.so user=資料庫登入帳號  passwd=資料庫登入密碼 host=localhost db=資料庫名稱  table=資料表名稱 usercolumn=使用者名稱欄位名稱  passwdcolumn=使用者密碼欄名稱 crypt=2
account required pam_mysql.so user=資料庫登入帳號  passwd=資料庫登入密碼 host=localhost db=資料庫名稱  table=資料表名稱 usercolumn=使用者名稱欄位名稱  passwdcolumn=使用者密碼欄名稱 crypt=2
修改完後儲存。
修改 /etc/vsftpd.conf
guest_enable=YES
write_enable=YES
guest_username=ftp
local_root=/home/ftp/$USER                                # 使用者目錄 
user_sub_token=$USER
virtual_use_local_privs=YES
user_config_dir=/etc/vsftpd_user_conf/        # 使用者設定檔存放目錄
修改完畢後,重新啟動 vsftpd
/etc/init.d/vsftpd restart在來就可以建立新的 ftp使用者了。
首先在 MySQL下新增資料在剛剛所建立的資料表裡。
INSERT INTO '資料表名稱'  ('Name'  , 'Password') VALUES ( '新增的帳號'  , PASSWORD('新增帳號的密碼'));接下來設定使用者目錄。 
新增檔名為使用者名稱的檔案到 /etc/vsftpd/vsftpd_user_conf/ 資料夾下
內容為:
local_root=/目錄位置/ 使用者資料夾 
存檔。
如目錄位置下並沒有這資料夾,則新增資料夾,並設定目錄權限。
mkdir /目錄位置/ 使用者資料夾
chown -R ftp /目錄位置/ 使用者資料夾
大致上設定到這裡就都 ok了。
如果還是無法登入,可能是 /etc/vsftpd.conf設定檔有設定到vsftpd.user_listvsftpd.chroot_list這二個檔案。
如果都無誤,因該都可使用了。
本實作是參考底下網址:
http://blog.gclin.org/2009/04/14/vsftp-virtual-user-mysql-add-user/

2013年4月13日 星期六

Java TestCase for JUnit 4 - 環境安裝

From Evernote:

Java TestCase for JUnit 4 - 環境安裝

這裡只記錄Java使用JUnit Plugin的最簡單的範例

目前如果是使用Eclipse開發,預設就已經有JUnit

可以透過下面的方式加到你的專案

1.在自已開發的專案點選右鍵 -> Build Path -> Configure Build Path...





開啟Java Build Path設定畫面,點選右邊的Add Library




選擇Eclipse預設的JUnit套件,Next



設定JUnit版本,我們選擇JUnit 4,在按下Finish



完成上面的步驟就把Eclipse裡的JUnit Library加到專案裡




Java TestCase for JUnit 4 - 簡單範例測試

From Evernote:

Java TestCase for JUnit 4 - 簡單範例測試

假設我們有一個Unit的專案

專案裡有一個Method在驗證傳入值是否為2的倍數



如果我們要對這個Method做Test Unit

我們可以在專案裡建立另一個專放測試類別的Package
這裡用TestUnit Package


然後建立了一個TestUnit.java

這個TestUnit Class 必需繼承TestCase Class (你必需有加入JUnit Library)
內容如下:



setUp - 這是在測試前先執行的Method,通常都是放些測試前初使化的動作

tearDown - 這是在測試後所做的動作,通常都是結束掉服務

testMultipleTwoFalse - 這是第一個測試Method,第15行就是對isMultipleTwo送值做測試

Assert.assertEquals(預期結果 , 測試Method + 傳入值)

2013年4月11日 星期四

解決煩人的modified

From Evernote:

解決煩人的modified

今天在公司發生了一件鬼打牆的事情

就是我Clone下來的專案出現了一堆modified

這些modified是很奇怪的,雖然部分是因為檔案名稱大小寫的關係才出現的modified

但這些modified有大多數都是內容有更動.............

明明才剛Clone下來,怎會有檔案出現modified

雖然事後還是沒找到正真發生的原因,不過總算找到可以暫時避開這個問題的方法

這裡先說,因為是多人開發,所以我也不敢直接將有modified的檔案加到.gitignore

反正這些檔案我並不會使用,更不會去更動,所以我直接採用

git update-index --assume-unchanged <files name>

執行完查看

git status

發現檔案不在出現了

這也暫時解決了這個問題

其實這個指令就是在告訴git我假設這個檔案是沒有更動的,所以git採信了我的話,不在出現在status

那我也又做了另一個實驗

那就是,如果這個檔案在次被更動呢????

答案是,他還是會在告訴你modified