如何安裝 StarUML-v2.8.0-64-bit.deb ? [論壇 - 新手村]
正在瀏覽:
1 名遊客
回覆: 如何安裝 StarUML-v2.8.0-64-bit.deb ? |
|||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
會員五級
![]() ![]() 註冊日期:
2012/4/22 10:50 所屬群組:
已註冊使用者 等級: 36
HP : 0 / 898
![]() |
以下測試的環境是「Xubuntu 16.04 amd64 英文界面」。
================================================================================ ## 前提說明 這篇回覆,提供另一種安裝的方式,不透過「套件管理系統」的安裝方式。 可以對照「#10」來看。 原本的「StarUML-v2.8.0-64-bit.deb」會安裝「StarUML」到「/opt」底下, 這篇要介紹安裝到「~/app」這個資料夾底下,您也可以安裝到其他的路徑。 關於「Desktop Entry」,「系統全域」是安裝到「/usr/share/applications/」 這篇要介紹安裝到「個人區域」,也就是安裝到「~/.local/share/applications」 關於「Icon」,「系統全域」是安裝到「/usr/share/icons/」 這篇要介紹安裝到「個人區域」,也就是安裝到「~/.local/share/icons」 關於上面提到「libgcrypt11」的問題,上面「#10」「#9」 原本是安裝到「系統全域」的「/lib/x86_64-linux-gnu/」, <-- 我的環境是這個路徑。 這篇要介紹安裝到「~/app/StarUML/opt/staruml/lib/」<-- 可以參考「~/app/StarUML/opt/staruml/staruml」的內容。 關於「libudev.so.0」,也是一樣的模式,上面的「#10」 原本是設定到「系統全域」的「/lib/x86_64-linux-gnu/」, 這篇要介紹安裝到「~/app/StarUML/opt/staruml/lib/」<-- 可以參考「StarUML-v2.8.0-64-bit.deb」的「Maintainer Scripts」, 最底下會說明,如何找到「Maintainer Scripts」。 再來還會提到兩個輔助工具「xdg-desktop-menu」和「xdg-icon-resource」,是屬於「xdg-utils」這個套件。 跟「Desktop Entry」和「Icon」有關。 ================================================================================ ## 安裝步驟 執行下面這段「Script」。
然後執行「~/app/StarUML/opt/staruml/staruml」就會啟動「staruml」。
底下會解釋如何安裝「Desktop Entry」和「Icon」。 ================================================================================ ## 其他相依套件 執行
顯示
我測試的系統,目前已經有安裝很多套件了,應該有滿足上面的相依,所以我沒有再做其他安裝的動作 若您的系統,有缺上面相依的套件的話,就請自行安裝。 目前還沒有花時間把這段去寫成「script」。也許有其他人可以來補充。 ================================================================================ ## 安裝 Desktop Entry 只要產生一個檔案「~/.local/share/applications/staruml.desktop」,填寫相關的格式就行了。 目前這篇討論的是安裝到個人的HOME底下,所以就不安裝在「/usr/share/applications/staruml.desktop」這個路徑。 除了自行撰寫,剛剛解開的「StarUML-v2.8.0-64-bit.deb」裡面也有提供一個檔案「StarUML/opt/staruml/staruml.desktop」。 原本的內容如下 [Desktop Entry] Name=StarUML Type=Application Categories=Development Exec=/opt/staruml/staruml %U Icon=staruml MimeType=text/html; Keywords=Design;Modeling;Development;UML; 以下假設使用的帳號叫「user」,所以家目錄就是「/home/user」 所以複製「StarUML/opt/staruml/staruml.desktop」這個檔案 到「~/.local/share/applications/staruml.desktop」, 然後修改「~/.local/share/applications/staruml.desktop」。 只要將「Exec=/opt/staruml/staruml %U」 改成「Exec=/home/user/app/StarUML/opt/staruml/staruml %U」就行了 這樣就可以在「開始功能表 」找到「StarUML」的啟用圖示, 「Xubuntu」的「開始功能表」使用的是「whiskermenu」 所以「StarUML」的啟用圖示,除了可以打關鍵字找到, 也可以在「Development / StarUML」找到,可以參考上面的「Categories=Development」。 以下是參考的「Script」。 參考一 #!/usr/bin/env bash ## install-desktop-entry-1.sh SRC_STARUML_DESKTOP_PATH=StarUML/opt/staruml/staruml.desktop DES_STARUML_DESKTOP_PATH=~/.local/share/applications/staruml.desktop SRC_STARUML_EXEC_PATH=/opt/staruml/staruml DES_STARUML_EXEC_PATH=$(pwd)/StarUML/opt/staruml/staruml ESC_SRC_STARUML_EXEC_PATH=${SRC_STARUML_EXEC_PATH//\//\\\/} ESC_DES_STARUML_EXEC_PATH=${DES_STARUML_EXEC_PATH//\//\\\/} ## cp StarUML/opt/staruml/staruml.desktop ~/.local/share/applications/staruml.desktop ## 可以使用下面這一行進行複製。 # cp "$SRC_STARUML_DESKTOP_PATH" "DES_STARUML_DESKTOP_PATH" ## 也可以透過「xdg-desktop-menu」這個工具來產生。 xdg-desktop-menu install $SRC_STARUML_DESKTOP_PATH --novendor ## 顯示「執行取代的指令」 echo sed -i -e "s/${ESC_SRC_STARUML_EXEC_PATH}/${ESC_DES_STARUML_EXEC_PATH}/g" $DES_STARUML_DESKTOP_PATH ## 真正「執行取代的指令」 sed -i -e "s/${ESC_SRC_STARUML_EXEC_PATH}/${ESC_DES_STARUML_EXEC_PATH}/g" $DES_STARUML_DESKTOP_PATH 參考二 #!/usr/bin/env bash ## install-desktop-entry-1.sh STARUML_MENU_PATH=$HOME/.local/share/applications/staruml.desktop STARUML_DESKTOP_PATH=$HOME/Desktop/staruml.desktop STARUML_EXEC_PATH=$(pwd)/StarUML/opt/staruml/staruml cat > $STARUML_MENU_PATH << EOF [Desktop Entry] Name=StarUML Type=Application Categories=Development Exec=$STARUML_EXEC_PATH %U Icon=staruml MimeType=text/html; Keywords=Design;Modeling;Development;UML; EOF ## 複製一份到「~/Desktop/staruml.desktop」 cp $STARUML_MENU_PATH $STARUML_DESKTOP_PATH chmod u+x $STARUML_DESKTOP_PATH ## 或是產生一個「Symbolic link」到「~/Desktop/staruml.desktop」也行 ## ln -s $STARUML_MENU_PATH $STARUML_DESKTOP_PATH 另外也可以複製一份到「~/Desktop/staruml.desktop」, 或是做個捷徑到「~/Desktop/staruml.desktop」, 這樣就會在「桌面」顯示圖示,可以點選啟動「staruml」。 這個可以參考之前寫的另一篇「回覆#2」。 關於「Icon=staruml」,接續著來說明「如何安裝 Icon」。 ================================================================================ ## 安裝 Icon 在「~/app/StarUML/opt/staruml/」,有四個「png」檔。 執行
顯示
現在分別將這四個檔案複製到下面四個路徑
所以可以執行下面的簡易「Script」來達到這個動作 #!/usr/bin/env bash ## 確保資料夾存在 mkdir -p ~/.local/share/icons/hicolor/128x128/ mkdir -p ~/.local/share/icons/hicolor/256x256/ mkdir -p ~/.local/share/icons/hicolor/32x32/ mkdir -p ~/.local/share/icons/hicolor/48x48/ ## 複製icon檔案 cp ~/app/StarUML/opt/staruml/appshell128.png ~/.local/share/icons/hicolor/128x128/apps/staruml.png cp ~/app/StarUML/opt/staruml/appshell256.png ~/.local/share/icons/hicolor/256x256/apps/staruml.png cp ~/app/StarUML/opt/staruml/appshell32.png ~/.local/share/icons/hicolor/32x32/apps/staruml.png cp ~/app/StarUML/opt/staruml/appshell48.png ~/.local/share/icons/hicolor/48x48/apps/staruml.png 我們可以執行下面的指令來確認
顯示
我們也可以透過「xdg-icon-resource」這個輔助工具來達到這個動作。 底下會在額外說明「xdg-icon-resource」的用法。 以下是參考「Script」。 #!/usr/bin/env bash xdg-icon-resource install --novendor --mode user --size 128 StarUML/opt/staruml/appshell128.png staruml xdg-icon-resource install --novendor --mode user --size 256 StarUML/opt/staruml/appshell256.png staruml xdg-icon-resource install --novendor --mode user --size 32 StarUML/opt/staruml/appshell32.png staruml xdg-icon-resource install --novendor --mode user --size 48 StarUML/opt/staruml/appshell48.png staruml 上面的兩個方式,我們也可以改寫,以下是參考「Script」 #!/usr/bin/env bash ## https://www.google.com.tw/#q=sed+replace+string ## https://www.cyberciti.biz/tips/bash-shell-parameter-substitution-2.html ## https://www.cyberciti.biz/faq/unix-linux-replace-string-words-in-many-files/ STARUML_APP_DIR_PATH=$HOME/app/StarUML/opt/staruml for icon in "$STARUML_APP_DIR_PATH"/*.png; do size="${icon##*/appshell}" size="${size%.png}" #echo mkdir -p "~/.local/share/icons/hicolor/""$size""x""$size""/" mkdir -p "$HOME/.local/share/icons/hicolor/""$size""x""$size""/" #echo cp $icon "$HOME/.local/share/icons/hicolor/""$size""x"$size"/apps/staruml.png" cp $icon "$HOME/.local/share/icons/hicolor/""$size""x"$size"/apps/staruml.png" done 使用「xdg-icon-resource」 #!/usr/bin/env bash STARUML_APP_DIR_PATH=$HOME/app/StarUML/opt/staruml for icon in "$STARUML_APP_DIR_PATH"/*.png; do size="${icon##*/appshell}" size="${size%.png}" echo xdg-icon-resource install --novendor --mode user --size "$size" "$icon" staruml xdg-icon-resource install --novendor --mode user --size "$size" "$icon" staruml done ================================================================================ ## 移除 Icon 若是要移除,只要把剛剛安裝的4個檔案刪除就行了。
執行下面指令確認
會顯示
一樣可以透過「xdg-icon-resource」這個輔助工具來達到「移除」這個動作。
上面兩種方式,一樣改寫如下 #!/usr/bin/env bash STARUML_APP_DIR_PATH=$HOME/app/StarUML/opt/staruml for icon in "$STARUML_APP_DIR_PATH"/*.png; do size="${icon##*/appshell}" size="${size%.png}" #echo rm -f "$HOME/.local/share/icons/hicolor/""$size""x"$size"/apps/staruml.png" rm -f "$HOME/.local/share/icons/hicolor/""$size""x"$size"/apps/staruml.png" done 使用「xdg-icon-resource」的「script」 #!/usr/bin/env bash STARUML_APP_DIR_PATH=$HOME/app/StarUML/opt/staruml for icon in "$STARUML_APP_DIR_PATH"/*.png; do size="${icon##*/appshell}" size="${size%.png}" echo xdg-icon-resource uninstall --novendor --mode user --size "$size" staruml xdg-icon-resource uninstall --novendor --mode user --size "$size" staruml done ================================================================================ ## 說明 「xdg-icon-resource」的使用方法 先執行 $ man xdg-icon-resource 可以看到其中一段
先給下面這段「pattern」,等會可以對照著看
剛剛的例子, 要安裝「~/app/StarUML/opt/staruml/appshell128.png」這個icon檔案, 到「~/.local/share/icons/hicolor/128x128/apps/staruml.png」這個路徑 這個路徑,可以對照上面的「pattern」。 所以欄位如下
然後以下是安裝的動作
若是透過「xdg-icon-resource」的方式安裝,指令如下,
欄位如下
所以上面可以省略一些欄位,改寫如下
關於「--mode」 *「--mode user」指的是安裝到「~/.local/share/icons/」 *「--mode system」指的是安裝到「/usr/share/icons/」 還有要注意上面的「icon-name」是「staruml」,所以指令下的時候,必須填寫「--novendor」。 否則就會出現下面的訊息
若是要移除剛剛安裝的icon檔案,執行指令如下
一樣可以透過「xdg-icon-resource」的方式移除,指令如下,
或是
================================================================================ ## xdg-utils 關於「xdg-icon-resource」的使用方法,在寫這篇「回覆」的時候,本來要寫一個類似這篇的案例說明, 雖然腦海中預先有想法了,不過那時候我寫完「xfconf-query」的用法後,就擱置了。 那時候本來預計要透過「Sublime Text 3」來當範例說明, 所以各位看官也可以拿「Sublime Text 3」來當「練習」。 接下來簡易探索「xdg-utils」這個套件 執行
顯示
執行
顯示
表示「/usr/bin/xdg-icon-resource」是屬於「xdg-utils」這個套件。 也可以改寫成下面這一行指令,一樣會顯示上面的結果
或是改寫成改寫成下面這一行指令,一樣會顯示上面的結果
執行
顯示
執行下面指令,了解「xdg-utils」這個套件,有哪些manpage可讀 (這個技巧紀錄「在這」)
顯示
$ man xdg-open $ man xdg-screensaver $ man xdg-settings $ man xdg-desktop-icon $ man xdg-desktop-menu $ man xdg-icon-resource $ man xdg-email $ man xdg-mime 執行
顯示
關於「/usr/bin/xdg-icon-resource」是「shell script」,所以有興趣深究的話,也可以直接觀看裡面的內容
================================================================================ ## StarUML-v2.8.0-64-bit.deb 探索指引 ### 「DEBIAN/postinst」 另外可以執行
會產生一個「DEBIAN」的資料夾,這裡面會放置「Maintainer Scripts」。 執行
顯示
可以研讀「DEBIAN/postinst」這個檔案,裡面有包含上面提到的一些用法。 若是透過「dpkg」安裝「StarUML-v2.8.0-64-bit.deb」,則會在「/var/lib/dpkg/info/staruml.postinst」找到。 ### 「StarUML/opt/staruml/staruml」 還有可以研讀「StarUML/opt/staruml/staruml」這個檔案,也是「Shell Script」, 要了解的就是「LD_LIBRARY_PATH」, 這跟我之前提到的這篇「回覆#5」裡面列的「## lib 議題相關參考網址」有關聯。 ================================================================================ 報告完畢 ![]()
2017/2/28 3:26
|
||||||||||
![]() |
回覆: 如何安裝 StarUML-v2.8.0-64-bit.deb ? |
|||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
會員二級
![]() ![]() 註冊日期:
2009/12/17 21:17 所屬群組:
已註冊使用者 等級: 8
HP : 0 / 186
![]() |
感謝 nana 及各位前輩,StarUML 依照指點安裝好了!
原本只是在家自修 Java,想使用 StarUML 學學 UML,沒想到學了更多,依照邏輯、知道了什麼叫 bash、知道了"一點點" dpkg、grep指令,雖花了一個多月,收穫很多,雖然到現在還是不知道 libgcrypt11 到底是什麼,哈! 非常感謝各位,越來越覺得 Ubuntu 的可愛。 再次感謝大家!
2017/3/31 8:29
|
||||||||||
![]() |
回覆: 如何安裝 StarUML-v2.8.0-64-bit.deb ? |
|||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
會員五級
![]() ![]() 註冊日期:
2012/4/22 10:50 所屬群組:
已註冊使用者 等級: 36
HP : 0 / 898
![]() |
clarkliang 寫到: 關於 clarkliang 寫到: 雖然關於這部份的議題,我還沒研究透徹,不過可以給您一個方向去探究。 我寫了一些範例,放在「GitHub」上,供您參考,輔助您理解這些概念。 ================================================================================ ## 撰寫此文的開發環境 * Xubuntu 16.04 amd64 英文界面 ================================================================================ ## 前置動作 執行下面指令,安裝「build-essential」。
================================================================================ ## 範例一 samwhelp 寫到: 我在之前的「回覆 #4」的最下方有提到另一個「回覆 #5」,請找尋「## lib 議題相關參考網址」。 而「範例一」就是根據「[心得] 用gcc 自製 Library」的「2. Shared libraries」改寫成的範例。 預計要建立一個「lib」名稱是「demo」,也就是「libdemo」。 原始檔案是「hello.c」,「hi.c」,「lib-demo.h」。 編譯的指令放在「lib-build.sh」。 可以執行下面指令編譯。
就會產生「hi.o」和「hello.o」這兩個檔案, 還有「libdemo.so.1.0.0」這個檔案, 並且產生「libdemo.so.1」,是「symbolic link」到「libdemo.so.1.0.0」。 然後如何編譯和使用「libdemo」 原始檔案是「main.c」。 編譯的指令放在「main-build.sh」。 可以執行下面指令編譯。
就會產生一個執行檔「app」。 執行
顯示
要改執行下面指令,編寫在「run.sh」。
顯示
也可以執行「$ ./run.sh」。 這也是我上面「回覆 #11]的最下方有提到的 您可以參考「StarUML/opt/staruml/staruml」裡面寫的內容,裡面就有使用到「LD_LIBRARY_PATH」。 或是您也可以閱讀「$ man ld.so」,找尋「LD_LIBRARY_PATH」,可以找到相關的說明。 ================================================================================ ## 範例二 使用「libnotify4」來舉例, 執行下面指令安裝「libnotify-dev」
C的程式碼可以參考「Arch Wiki / Desktop notifications」 改寫後,也就是「main.c」這個檔案。 然後執行下面指令,就可以編譯「main.c」。
上面指令編寫到「build.sh」這個檔。 所以也可以執行下面指令,來編譯「main.c」。
編譯成功後,就會產生「app」這個檔案。 執行下面指令
就會看到一個「訊息對話框」。 接下來探索相關「Package」。 可以執行
顯示
請注意「/usr/lib/x86_64-linux-gnu/libnotify.so.4.0.0」 和「/usr/lib/x86_64-linux-gnu/libnotify.so.4」這兩個檔案。 執行
顯示
執行
顯示
還記得剛剛上面提到的 samwhelp 寫到: * 「libdemo.so.1」對照「libnotify.so.4」 * 「libdemo.so.1.0.0」對照「libnotify.so.4.0.0」 ================================================================================ ## libgcrypt20 執行
顯示
執行
顯示
執行
顯示
* 「libdemo.so.1」對照「libgcrypt.so.20」 * 「libdemo.so.1.0.0」對照「libgcrypt.so.20.0.5」 請再對照上面之前的回覆。 ================================================================================ 相關的議題,也可以參考這個「影片」和這個「影片」, 然後從其中的關鍵字,找到更多的參考資料。 還有下面這篇 * https://github.com/tinyclub/open-c-book (觀看) 之前有列在另一個「回覆 #5」,裡面有列其他的參考連結,就不轉貼過來了。 ================================================================================ ## manpage * $ man ldd * $ man ldconfig * $ man ld.so * LD_LIBRARY_PATH ================================================================================ 以上提供參考, 因為有些我也還沒研究透徹,目前只有研究到這,比較深入的,就需要您自行去深入探索了,給您探索的起點。 報告完畢 ![]()
2017/3/31 17:09
|
||||||||||
![]() |
回覆: 如何安裝 StarUML-v2.8.0-64-bit.deb ? |
|||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
會員二級
![]() ![]() 註冊日期:
2009/12/17 21:17 所屬群組:
已註冊使用者 等級: 8
HP : 0 / 186
![]() |
好的,謝謝!
2017/4/1 13:37
|
||||||||||
![]() |
您可以查看帖子.
您不可發帖.
您不可回覆.
您不可編輯自己的帖子.
您不可刪除自己的帖子.
您不可發起投票調查.
您不可在投票調查中投票.
您不可上傳附件.
您不可不經審核直接發帖.