:::

DSpace-DLLL原始碼

4月 18, 2010 36 Comments Edit Copy Download

image

繼昨天所說的寫書完成之後,今天繼續把DSpace-DLLL的原始程式碼釋放出來:

以下簡單地敘述安裝所需的步驟:

安裝其他軟體

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記得要修改喔。


因為還沒做過測試,所以安裝起來可能會有其他問題。

如果大家對於安裝有任何疑問,請在這篇下面回應,感謝。

總共36 則留言 ( 我要發問 , 隱藏留言 顯示留言 )

  1. 您好,我下載六個zip檔後,無法結合,解壓不出來,不知道是不是檔案有問題呢…可否請布丁測試…

    回覆刪除
  2. 請利用7-zip解壓縮!
    http://portableapps.com/apps/utilities/7-zip_portable

    回覆刪除
  3. 不好意思,請問一下,在windows介面下如何進行批次上傳呢?(初學者,請不吝指教)謝謝!

    回覆刪除
  4. 您好,系統相關軟體安裝好後,解壓縮dspace資料夾裡有target檔,請問可以直接用[target]檔 ant fresh_install 安裝嗎?依安裝步驟mvn package會失敗...

    回覆刪除
  5. 匿名先生您好:

    請您先研究看看吧QQ
    因為我已經把工作環境先移除掉了,一時間沒有辦法測試,而且忙於論文,沒有時間抽空幫您解決問題QQ

    請多多加油,如果有找到什麼方法,歡迎回報!

    回覆刪除
  6. 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了。
    布丁哥這麼忙還來勞煩您真是不好意思,論文加油囉!

    回覆刪除
  7. 恭喜匿名先生QQ

    對不起,那個計數器的確是原本DSpace沒有、我額外寫進去的東西,可能哪邊沒有整合好吧orz
    請多見諒

    回覆刪除
  8. 您修改的版本實在驚為天人,相較之下原汁原味的DSpace好寒酸吶!

    匿名先生敬上

    回覆刪除
  9. 承讓承讓

    九月底我們就把這個DSpace-DLLL出書了,裡面有詳細的介紹與說明,屆時也請多多支持。

    回覆刪除
  10. 匿名先生您好:

    關於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的方式,把所有例外都抓掉,不丟出去。這樣就能正常編譯。

    您的意見我也修正到書當中了,出書之後我會再把較正確的原始碼版本釋放出來的。感謝您的意見。

    回覆刪除
  11. 想請教一下,不知道dspace有辦法新增頁面嘛?
    就是例如政大機構典藏=>右邊相關新聞=>Q&A,請問一下這樣的頁面是要去哪邊放置呢?
    或是類似中興大學這頁面
    http://nchuir.lib.nchu.edu.tw/pages/10-01-worldir.jsp
    請問是要如何內嵌在DSPACE裡面呢?

    回覆刪除
  12. To alice:

    中興大學的連結跟版面看起來像是自己額外撰寫的。
    就是撰寫一個jsp檔案,然後修改DSpace的layout中的navbar,加入此連結,再連結過去。而非使用DSpace正規的Servlet走法。
    這樣做的好處是建置容易,而且網址容易自訂好理解。

    http://get.nccu.edu.tw:8080/getcdb/#
    以前我在做教育部全國通識網計畫的時候,是利用DSpace內建的Collection跟Item,然後再去修改layout而成。
    這種作法比較繁雜,但是因為是利用DSpace內建的功能,所以也有DSpace帶來的權限、全文檢索等功能的好處。只是網址名稱就不太好看了。

    回覆刪除
  13. 請問你寫的書何時會看的到呢?
    我最近有好多dspace的困擾,不知道方便請教嘛?
    1.不知道在機構典藏當中,隱私權的問題你知道政大是如何設定的嘛?對於不開放的機構典藏,是如何處理,在系統上如何控管開放與不開放還有校內ip開放的問題呢?

    2.在dsapce上面,最下面的那個版權控管,那要去哪邊進行修改呢?

    感謝可以撥空解答看看我的問題,謝謝

    回覆刪除
  14. 哎呀呀,真是令人汗顏,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

    回覆刪除
  15. 布丁大您好

    想跟您請教一下DSpace 1.6.0是否有中文化安裝檔?[印象中1.4或1.5版本有中文檔]我可以哪邊下載1.6.0的中文檔?

    再麻煩您幫忙了,感謝。

    馬克 gtr1582@infodoc.com.tw / gtr1582@yahoo.com.tw

    回覆刪除
  16. 安裝過程應該都英文的,沒有聽說有中文安裝檔
    不過我猜你應該是想問的是系統語系檔

    我都是用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

    加油

    回覆刪除
  17. 布丁大大,上面DSpace-DLLL 的Source檔案無法下載了,不曉得能不能再提供下載呢?
    跪求 Orz...

    回覆刪除
  18. To 彩塵砂:

    SkyDrive搞我......orz
    真是不值得信任的平台啊,微軟先生

    我找時間再上傳到GitHub吧。

    回覆刪除
  19. 太感謝您的回應了,剛剛也有寫信給您(scshih@fcu.edu.tw寄的),由於有些趕,所以上傳 GitHub 若不順利的話,我也可以弄個ftp讓您上傳給我。

    再次感謝您在學術領域與開放原始碼界的分享。 感激不盡!

    回覆刪除
  20. To 彩塵砂,

    https://github.com/pulipulichen/dspace-dlll
    上傳到GitHub了

    按下「ZIP」按鈕下載整個專案
    示意圖:http://i.imgur.com/KzZFQuL.png

    回覆刪除
  21. To 布丁大
    我點下面的連結,出現 404 的 Error 耶!
    https://github.com/pulipulichen/dspace-dlll

    再麻煩幫我看看,譸譸!!

    回覆刪除
  22. 布丁大,我能夠下載了,大大感謝!

    回覆刪除
  23. To 彩塵砂,

    因為我的GitHub帳號被當成廣告機器人,所以被封鎖了!
    寫封信請管理員解鎖之後才能用orz

    回覆刪除
  24. 布丁大,我下載zip檔約8mb多,怎麼和你網頁開頭寫的266mb 大小差那麼多。
    我裝時/dspace-dlll-master/dspace/modules 裡的
    oai、lni、sword、xmlui都沒有src資料夾,編譯時有些問題,不曉得是不是檔案不完全。(因為其它lucene-analyzers,apache-lucene,commons-logging等jar檔,好像也有缺,餵了比較能在ant fresh_install 通過)

    回覆刪除
  25. Dear 彩塵砂,

    差點忘了GitHub會自動忽略沒有檔案的空目錄
    我把原始碼壓縮成zip之後再上傳了一次
    https://github.com/pulipulichen/dspace-dlll/blob/master/dspace-dlll-1.5.0-src-release.zip

    檔案減少很多的原因是我把編譯結果的target都刪掉,只留下原始碼的src
    你編譯失敗的原因是因為少了那些空目錄,但他們仍必須要在

    我再研究看看能不能把空目錄上傳到GitHub

    回覆刪除
  26. 布丁大,我還是需要手動餵 (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…

    回覆刪除
  27. 既然缺少目錄javax/servlet/http/HttpServlet,那就加上去?

    回覆刪除
  28. To 彩塵砂,

    我用小技巧加了這些目錄上去
    http://www.plurk.com/p/iu8878

    現在GitHub上面的目錄是完整的喔。

    回覆刪除
  29. 親愛的版主~在下列網址中,不曉得該怎麼下載@@"
    https://github.com/pulipulichen/dspace-dlll
    方便告知嗎^^"

    回覆刪除
  30. To Yulin,

    右下角有個Download ZIP可以下載

    回覆刪除
  31. 作者已經移除這則留言。

    回覆刪除
  32. 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

    歡迎選購

    回覆刪除