[自嗨?] Application bundle 仿作

歡迎提問 debian desktop 相關問題,何謂 desktop ? 舉凡您日常生活會用到的部份,如上網 ( www 、 bbs ..) 、程式設計、繪圖...等等。 通常以 X Window 環境底下問題為主。

[自嗨?] Application bundle 仿作

文章訪客 » 週三 1月 30, 2008 9:25 am

*聲明:小弟只是個 end user, 不會 shell script,更不會寫程式

雖然接觸 linux有一段時間了
用 .deb 包安裝軟體也很方便
偶爾還是會羨慕 Mac OS X 有 Application bundle
(其實小弟從沒用過/親眼看過 Mac OS X)
想說 會不會有那麼一天
"安裝 PCMan X 就像 Nally,從作者網站上download到桌面就可以用了?“

所以就有以下(自嗨)的初步嘗試:

使用工具: glick-shell (from Glick 0.2)
*Glick: [urlhttp://www.gnome.org/~alexl/glick/][/url]
作業環境: ubuntu gutsy,KDE 3.5.8
示範程式: PCMan X 0.3.7
步驟:
代碼: 選擇全部
user@ubuntu:~$ mkdir build
user@ubuntu:~$ glick-shell PCManX
user@ubuntu:~$ untar xvjf pcmanx-gtk2-0.3.7.tar.bz2
user@ubuntu:~$ cd pcmanx-gtk2-0.3.7
user@ubuntu:~/pcmanx-gtk2-0.3.7$ ./configure --prefix=/proc/self/fd/1023
user@ubuntu:~/pcmanx-gtk2-0.3.7$ make; make install; cd ~
user@ubuntu:~$ exit
user@ubuntu:~$ nano PCManX/AppRun
user@ubuntu:~$ nano PCManX/.directory


成果截圖:
圖檔

上方的是快速瀏覽器(Quick browser),顯示了 Application Bundle 的結構;下方的 file manager 作為參考


Any Idea?
訪客
 

文章訪客 » 週三 1月 30, 2008 9:27 am

更正:
代碼的第一行
應該是 "mkdir PCManX"
訪客
 

文章mason » 週三 1月 30, 2008 11:20 am

有興趣的話,這個 blog 的回應討論部份可以參考:glick-brings-better-standalone-application-bundles-to-linux

如果只是作為個人使用,無疑 Glick 是很方便的。
從單一使用者的角度出發,我覺得向 Mac 學習是一個很好的發展。

但是如果是給多人使用的環境,系統的維護勢必會增加麻煩,
尤其是對系統管理上有潔癖的人來說,應該會禁止 Glick 出現在他的機器上吧。
skype:dantemason
http://blog.sikazozo.org
頭像
mason
快樂的大學生
快樂的大學生
 
文章: 547
註冊時間: 週二 9月 10, 2002 3:40 pm
來自: SIDE 3

文章訪客 » 週三 1月 30, 2008 11:42 am

(繼續自嗨中)

這的確是從 glick 衍生的
所以可以不修改原程式就達到任意擺放並執行(可以叫做 path agnostic 嗎)

但是和 standalone glick bundle 不同的是
小弟並沒有把 bundle 做成單一的可執行檔
所以系統不需要 fuse support
只要有 glick-shell 這個程式就可以了
(也可以包在 bundle 中,不一定要在 host system 中)

代碼: 選擇全部
user@ubuntu:~$ ldd `which glick-shell`
        linux-gate.so.1 =>  (0xffffe000)
        libc.so.6 => /lib/tls/i686/cmov/libc.so.6 (0xb7e13000)
        /lib/ld-linux.so.2 (0xb7f73000)
user@ubuntu:~$ du -sh `which glick-shell`
8.0K    /usr/local/bin/glick-shell
user@ubuntu:~$


如果要 distribute bundle,將 bundle 壓成 .tar.gz, .zip, ...
叫使用者下載並解壓縮就可以了

另外小更正: 原代碼第3行 是 tar (打錯成 untar)
訪客
 

文章訪客 » 週四 1月 31, 2008 12:29 am

當 kernel / toolchain / library 都很相似時,做這種東西很簡單。

問題是 Linux distro / version 一大堆,要做到完全的 "green" app 就得考慮一大堆雜七雜八的東西。

另外像環境變數、輸入法之類的也可以把你煩死。

坦白說這樣的東西沒啥技術性,想做就做,但別指望會有很多人幫你。

而且綁了一大堆的東西一點也不 green。
訪客
 

文章PCMan » 週四 1月 31, 2008 1:45 am

看一下人家是怎麼做的吧 - ZeroInstall System
http://zero-install.sourceforge.net/index.html
這個在 ROX desktop 已經用很久了。
我是沒實際用過,因為我比較喜歡 deb 這種
可以充分滿足控制慾的系統,可以掌握到每個細節
PCMan
榮譽學長
榮譽學長
 
文章: 217
註冊時間: 週六 7月 02, 2005 10:46 am

文章訪客 » 週四 1月 31, 2008 9:34 am

PCMan 寫:看一下人家是怎麼做的吧 - ZeroInstall System
http://zero-install.sourceforge.net/index.html
這個在 ROX desktop 已經用很久了。
我是沒實際用過,因為我比較喜歡 deb 這種
可以充分滿足控制慾的系統,可以掌握到每個細節


(我是那個自嗨的訪客--再次重申,只是 end user)

題外話:竟然有人回文耶 XD 以前小弟po文都沒人回

其實小弟胡亂拼湊出的Application bundle有一部分就是參考Rox 的AppDir(就是叫做AppRun的shell script)
代碼: 選擇全部
user@ubuntu:~$ cat PCManX/AppRun
#!/bin/sh
PROG=pcmanx
APP_DIR=`dirname $0`
APP_DIR=`cd "$APP_DIR";pwd`; export APP_DIR
glick-shell "$APP_DIR"/Current  $APP_DIR"/Current/bin/$PROG
user@ubuntu:~$


在ROX環境下,這個script負責所有啟動AppDir的動作(例:檢查環境、沒有binary就compile,...)
因為小弟不懂shell script,所以只會上面這個簡單的把戲

因此 rox-filer也認得小弟的Application bundle

既然如此 為何不直接用 rox 的 AppDir呢?
至少 就小弟觀察 包成 AppDir的程式 都要先改成 relocatable
其中一大部分是 python
其他的如rox-filer自身 就沒有把 path 寫死
(小弟用的笨方法:string Rox-Filer ==> %s/lib, %s/Messages ...)

xxxxxxxxxxxxxxxxxxxxxx
回到正題 為何會不喜歡 Zero-Install、Klik、...而採用glick?
原因很簡單 在(竊以為是 end user)看來,glick最輕量化
當然也最不成熟 (cannot resolve dependency,...)
畢竟 小弟只是想要能過一下有 Application bundle 的癮而已 :)
訪客
 


回到 debian desktop

誰在線上

正在瀏覽這個版面的使用者:沒有註冊會員 和 1 位訪客

cron