DSpace-DLLL原始碼
繼昨天所說的寫書完成之後,今天繼續把DSpace-DLLL的原始程式碼釋放出來:
- SkyDrive空間,以ZIP壓縮並分割成6個檔案,總共266MB:檔案1、檔案2、檔案3、檔案4、檔案5、檔案6
- 請利用7-ZIP解壓縮。(7-ZIP Portable下載、SkyDrive備份)
以下簡單地敘述安裝所需的步驟:
安裝其他軟體
DSpace-DLLL使用了大量的Media Filter多媒體轉檔,所以您的作業系統內也必須安裝對應的軟體。包括以下軟體:
- FFmpeg:影片轉檔與截圖工具
- MEncoder:影片轉檔工具
- python:Zoomify Image的運行環境
- Zoomify Image:將圖片切割成Zoomify Express可以瀏覽的工具
- SWFTools:SWF與PDF、JPEG等轉換的工具
- Xpdf:處理PDF的工具。CentOS上安裝Xpdf請看這篇。
- OdfConvertor:將docx、pptx、xlsx轉換成Open Document格式的工具
- OpenOffice:將各種文件轉換成PDF,以便DSpace處理的重要軟體
- Xvfb:文字介面中控制OpenOffice的工具。
其他的軟體則已經一同壓縮在dspace-dlll-1.5.0-src-release當中,安裝時就會自動加入,不必另外安裝。
設定OpenOffice自動啟動與重新啟動指令
文字介面中控制OpenOffice必須要使用Xvfb,請看我在「用Xvfb讓 OpenOffice開機時自動啟動」這篇的說明。
然後就可以撰寫script去讓他重新啟動。請寫一個openoffice_restart.sh的檔案放在/home/dspace/當中,執行權限打開。
檔案內容就只是停止OpenOffice,然後再啟動而已。內容如下:
/etc/init.d/openoffice stop sleep 3 /etc/init.d/openoffice stop sleep 5 /etc/init.d/openoffice start sleep 10
安裝VNC與phpPgAdmin
CentOS中安裝的方法請看「VNCserver初始設定與自動啟動」這篇。
phpPgAdmin是PHP的軟體,直接下載之後在Apache執行即可。
設定config.cfg
上述軟體安裝完之後,還要到[dspace-source]/dspace/config/config.cfg當中設定這些軟體的相關執行參數。
主要有兩處,一個是位於檔案中間的filter開頭的設定,請比對上述軟體的安裝位置來作調整。
filter.exec.ffmpeg = ffmpeg filter.exec.mencoder = /usr/bin/mencoder filter.exec.python = python filter.exec.zoomifyImage = /opt/ZoomifyImage/ZoomifyFileProcessor.py filter.exec.imagemagick = convert filter.exec.pdf2swf = pdf2swf filter.exec.xpdf-pdftotext = pdftotext filter.exec.xpdf-pdftohtml = pdftohtml filter.exec.odfconverter = OdfConverter filter.exec.jpeg2swf = jpeg2swf filter.exec.swfcombine = swfcombine
另一處則是最下方的其他工具,包括vnc、apache的http與phppgadmin。
vnc.port = 5801 http.port = 80 phppgadmin.url = /phpPgAdmin
其中原本我在DSpace-DLLL中的http.port是使用50080,這是為了避免一般人直接進入phpPgAdmin操作的手段。同時Apache的連接埠也請記得修改。
開始安裝
待完成上述步驟之後,正式安裝DSpace主要請見以前我寫的DSpace 1.5.1安裝法。雖然這個DSpace-DLLL是以DSpace 1.5版為主,但跟1.5.1安裝方法是相同的。config.cfg記得要修改喔。
因為還沒做過測試,所以安裝起來可能會有其他問題。
如果大家對於安裝有任何疑問,請在這篇下面回應,感謝。
您好,我下載六個zip檔後,無法結合,解壓不出來,不知道是不是檔案有問題呢…可否請布丁測試…
回覆刪除請利用7-zip解壓縮!
回覆刪除http://portableapps.com/apps/utilities/7-zip_portable
不好意思,請問一下,在windows介面下如何進行批次上傳呢?(初學者,請不吝指教)謝謝!
回覆刪除上傳到哪裡呢?
回覆刪除您好,系統相關軟體安裝好後,解壓縮dspace資料夾裡有target檔,請問可以直接用[target]檔 ant fresh_install 安裝嗎?依安裝步驟mvn package會失敗...
回覆刪除匿名先生您好:
回覆刪除請您先研究看看吧QQ
因為我已經把工作環境先移除掉了,一時間沒有辦法測試,而且忙於論文,沒有時間抽空幫您解決問題QQ
請多多加油,如果有找到什麼方法,歡迎回報!
Hello!我是匿名先生,我好像找到問題了可是我很菜解決不了:/opt/dspace-1.5.0-src-release/dspace-api/src/main/java/org/dspace/content/Bitstream.java:[787,13] addCount() in org.dspace.content.Bitstream cannot override addCount() in org.dspace.content.DSpaceObject; overridden method does not throw org.dspace.authorize.AuthorizeException
回覆刪除好像是計數器的問題,所以我把計數器相關的程式都拿掉就可以mvn package了。
布丁哥這麼忙還來勞煩您真是不好意思,論文加油囉!
恭喜匿名先生QQ
回覆刪除對不起,那個計數器的確是原本DSpace沒有、我額外寫進去的東西,可能哪邊沒有整合好吧orz
請多見諒
您修改的版本實在驚為天人,相較之下原汁原味的DSpace好寒酸吶!
回覆刪除匿名先生敬上
承讓承讓
回覆刪除九月底我們就把這個DSpace-DLLL出書了,裡面有詳細的介紹與說明,屆時也請多多支持。
匿名先生您好:
回覆刪除關於BitStream.addCount()的問題,我終於知道錯在哪邊了。
請把addCount()改成以下程式:
public void addCount()
{
try
{
bContext.setIgnoreAuthorization(true);
int count = getCount();
count++;
setCount(count);
update();
bContext.commit();
bContext.setIgnoreAuthorization(false);
}
catch (Exception e) {
}
}
這是因為上層物件DspaceObject的addCount並沒有宣告要丟出例外,而Bitstream的addCount卻丟出了例外,兩者發生衝突,因此不能編譯。
修改後的Bitstream.addCount(),採用try catch的方式,把所有例外都抓掉,不丟出去。這樣就能正常編譯。
您的意見我也修正到書當中了,出書之後我會再把較正確的原始碼版本釋放出來的。感謝您的意見。
想請教一下,不知道dspace有辦法新增頁面嘛?
回覆刪除就是例如政大機構典藏=>右邊相關新聞=>Q&A,請問一下這樣的頁面是要去哪邊放置呢?
或是類似中興大學這頁面
http://nchuir.lib.nchu.edu.tw/pages/10-01-worldir.jsp
請問是要如何內嵌在DSPACE裡面呢?
To alice:
回覆刪除中興大學的連結跟版面看起來像是自己額外撰寫的。
就是撰寫一個jsp檔案,然後修改DSpace的layout中的navbar,加入此連結,再連結過去。而非使用DSpace正規的Servlet走法。
這樣做的好處是建置容易,而且網址容易自訂好理解。
http://get.nccu.edu.tw:8080/getcdb/#
以前我在做教育部全國通識網計畫的時候,是利用DSpace內建的Collection跟Item,然後再去修改layout而成。
這種作法比較繁雜,但是因為是利用DSpace內建的功能,所以也有DSpace帶來的權限、全文檢索等功能的好處。只是網址名稱就不太好看了。
請問你寫的書何時會看的到呢?
回覆刪除我最近有好多dspace的困擾,不知道方便請教嘛?
1.不知道在機構典藏當中,隱私權的問題你知道政大是如何設定的嘛?對於不開放的機構典藏,是如何處理,在系統上如何控管開放與不開放還有校內ip開放的問題呢?
2.在dsapce上面,最下面的那個版權控管,那要去哪邊進行修改呢?
感謝可以撥空解答看看我的問題,謝謝
哎呀呀,真是令人汗顏,DSpace的書才剛做完一校,要等二校三校結束之後才開始印刷、鋪上通路,我看到11月都還不一定喔orz
回覆刪除1. DSpace沒有IP偵測機制,他完全只認帳號,或透過LDAP設定登入的使用者
你可以為各個item或collection設定policy(權限設定)。
只要把anonymous(匿名)的read權限拿掉,未登入使用者就不能看到你的典藏內容。
然後再把允許可以看的帳戶設定具有read的全縣,那麼該帳戶就可以看到典藏內容。
不過老實說,太細膩的權限設定就不容易做到,這是受限於DSpace的功能,而我本身也沒有特別在權限設定上做太多修改,簡單來說這功能還是很難用啦!
2. 要去修改JSPUI裡面的/layout/footer-default.jsp
快速方法是改[tomcat]/webapps裡面的footer-default.jsp就可以了
上述兩點在書中都有介紹的說orz
布丁大您好
回覆刪除想跟您請教一下DSpace 1.6.0是否有中文化安裝檔?[印象中1.4或1.5版本有中文檔]我可以哪邊下載1.6.0的中文檔?
再麻煩您幫忙了,感謝。
馬克 gtr1582@infodoc.com.tw / gtr1582@yahoo.com.tw
安裝過程應該都英文的,沒有聽說有中文安裝檔
回覆刪除不過我猜你應該是想問的是系統語系檔
我都是用1.5跟1.4版本,沒用過1.6。
不過如果架構沒有很大改變的話,也許1.6可以用之前的語系檔,然後再補完沒有翻譯的語系設定即可。
這是我手邊有的中文語系檔,你可以試試看
http://cid-7113c88187767b01.office.live.com/self.aspx/public/2010/11/Messages%5E_zh%5E_TW.zip
至於如何安裝使用,請參考DSpace的說明手冊中Internationalization一節,網址如下:
http://www.dspace.org/1_6_1Documentation/ch12.html#N17391
加油
布丁大大,上面DSpace-DLLL 的Source檔案無法下載了,不曉得能不能再提供下載呢?
回覆刪除跪求 Orz...
To 彩塵砂:
回覆刪除SkyDrive搞我......orz
真是不值得信任的平台啊,微軟先生
我找時間再上傳到GitHub吧。
太感謝您的回應了,剛剛也有寫信給您(scshih@fcu.edu.tw寄的),由於有些趕,所以上傳 GitHub 若不順利的話,我也可以弄個ftp讓您上傳給我。
回覆刪除再次感謝您在學術領域與開放原始碼界的分享。 感激不盡!
To 彩塵砂,
回覆刪除https://github.com/pulipulichen/dspace-dlll
上傳到GitHub了
按下「ZIP」按鈕下載整個專案
示意圖:http://i.imgur.com/KzZFQuL.png
To 布丁大
回覆刪除我點下面的連結,出現 404 的 Error 耶!
https://github.com/pulipulichen/dspace-dlll
再麻煩幫我看看,譸譸!!
布丁大,我能夠下載了,大大感謝!
回覆刪除To 彩塵砂,
回覆刪除因為我的GitHub帳號被當成廣告機器人,所以被封鎖了!
寫封信請管理員解鎖之後才能用orz
布丁大,我下載zip檔約8mb多,怎麼和你網頁開頭寫的266mb 大小差那麼多。
回覆刪除我裝時/dspace-dlll-master/dspace/modules 裡的
oai、lni、sword、xmlui都沒有src資料夾,編譯時有些問題,不曉得是不是檔案不完全。(因為其它lucene-analyzers,apache-lucene,commons-logging等jar檔,好像也有缺,餵了比較能在ant fresh_install 通過)
Dear 彩塵砂,
回覆刪除差點忘了GitHub會自動忽略沒有檔案的空目錄
我把原始碼壓縮成zip之後再上傳了一次
https://github.com/pulipulichen/dspace-dlll/blob/master/dspace-dlll-1.5.0-src-release.zip
檔案減少很多的原因是我把編譯結果的target都刪掉,只留下原始碼的src
你編譯失敗的原因是因為少了那些空目錄,但他們仍必須要在
我再研究看看能不能把空目錄上傳到GitHub
布丁大,我還是需要手動餵 (lucene-analyzers,apache-lucene,commons-logging等jar檔到 java的目錄裡)
回覆刪除雖然我餵完,而且也ant fresh_install 成功了。
但那個 jspui 確總是出現 Error deploying web application directory jspui
java.lang.NoClassDefFoundError: javax/servlet/http/HttpServlet
==================================
我以前的1.5.2是可以編譯,不用餵那麼多檔也可以編譯,而且以前的jspui 是可以直接用的說。 還是不曉得缺在那裡 orz…
既然缺少目錄javax/servlet/http/HttpServlet,那就加上去?
回覆刪除To 彩塵砂,
回覆刪除我用小技巧加了這些目錄上去
http://www.plurk.com/p/iu8878
現在GitHub上面的目錄是完整的喔。
親愛的版主~在下列網址中,不曉得該怎麼下載@@"
回覆刪除https://github.com/pulipulichen/dspace-dlll
方便告知嗎^^"
To Yulin,
回覆刪除右下角有個Download ZIP可以下載
作者已經移除這則留言。
回覆刪除感謝版主!
回覆刪除To Yulin,
回覆刪除那我只好再用你這張圖片標示給你看了,箭頭畫很大,應該不會找不到。
https://lh5.googleusercontent.com/-wfeL0HTBrQw/U8_GEquvFwI/AAAAAAABfGk/MEpdzp3CE2E/s0/2014-07-23_22-26-03.png
啊,找到就好。
附帶一提,因為看你不太會用GitHub,可能代表你也對原始碼這東西不太熟。
因為DSpace-DLLL不光是原始碼,還需要搭配作業系統一起才能順利架設。一般使用者恐怕很難上手。
真的要用DSpace-DLLL的話,我推薦你去買我六月才出的新書「DSpace開放源碼數位典藏系統建置理論與實務」,書目如下:
陳志銘、陳勇汀(2014)。DSpace開放源碼數位典藏系統建置理論與實務。臺北市:文華圖書館管理。
書本封面:https://lh6.googleusercontent.com/-pud0YeGlmMY/U8zrLVl066I/AAAAAAABe44/4MXbgylZ5J0/s0/2014-07-21_18-27-47.jpg
歡迎選購
超級感謝版主!
回覆刪除To Yulin,
回覆刪除不客氣