cht電腦資訊gcingcin分享
adm Find login register

簡單打包與安裝gcin deb的方法

winlin
1 簡單打包與安裝gcin deb的方法
Promote 2 Bookmark 02017-02-12quote  

 

eliu
tar xvfJ gcin*.xz; cd gcin*; ./gen-deb 

目前打包gcin deb很方便,原則上就是上面說的這樣,下面稍作細節補充。如果有興趣可以自己編看看,程序不多。

(一)先安裝好編譯的相關工具:

sudo apt-get build-dep gcin
sudo apt-get install dh-make autotools-dev libgtk-3-dev libqt4-dev qtbase5-dev


(二)下載gcin source code、編譯、安裝

下載位址:
http://www.csie.nctu.edu.tw/~cp76/gcin/download/

在此以「gcin-2.6.2.tar.xz」為例,下載並解壓縮後之後會得到一個「gcin-2.6.2」資料夾,
開啟終端機進入該資料夾並執行這個指令:
./gen-deb

編譯程序結束後,在「gcin-2.6.2」這個資料夾的上一層目錄可看到一個新生成的deb檔(gcin_2.6.2-0_i386.deb),
這時執行下列指令即可安裝編好的gcin:
sudo dpkg -i gcin_2.6.2-0_i386.deb


(三)其他補充:

如果有使用qt3程式,可能會需要qt3-immodule,編譯前請加裝下列套件:

 sudo apt-get install libqt3-mt-dev

(註:qt3輸入模組預設被關閉,執行gen-deb之前要先編輯configure,把use_qt3='N' 改成:use_qt3='Y'

 

如需使用下列2個輸入法,編譯前請分別安裝相關套件:

日文輸入法(anthy):

sudo apt-get install libanthy-dev 

新酷音(實驗中)

sudo apt-get install libchewing3-dev

 參考資料:http://cle.linux.org.tw/trac/wiki/GcinPackageDeb?format=txt

---

自2.7.5開始,gen-deb編出來的deb不再是單一檔案,而是7-8個deb,
若仍想把gcin編為單一個deb,請用這個舊的gen-deb(由2.7.4留下來的)取代source code裡的gen-deb。

---

自2.7.6開始,configure時會判斷系統裡是否有gtk3,有的話,就預設使用gtk3來編譯gcin,
如果仍想要使用gtk2編譯的gcin,請編輯source code裡的configure,
去除下面這段裡的「gtk+-3.0」並存檔之後再執行gen-deb即可。

編輯source code裡的configure

for i in gtk+-3.0 gtk+-2.0
do
  echo -n ".... Testing $i : "
  GTKINC=`pkg-config --cflags $i 2>/dev/null`

  if [ $? != 0 ]; then
    echo "not found"
    continue
  fi

  GTKLDFLAGS=`pkg-config --libs $i`
  if [ $? = 0 ]; then
    GTK=$i
    echo "found"
    break
  fi
done

 

edited: 7
guest
2
Promote 0 Bookmark 02011-12-24quote  

我想要問一下,

想要編出qt3-immodule、qt4-immodule、gtk3-immodule,

各需要先安裝哪些package?

winlin
3
Promote 0 Bookmark 02011-12-25quote  

guest

我想要問一下,想要編出qt3-immodule、qt4-immodule、gtk3-immodule,各需要先安裝哪些package?

感謝提問!小弟之前忽略了這個重要問題!(第一篇已更新)

如需要下列im-module,請加裝下列套件:

gtk3-immodule:

libgtk-3-dev

qt3-immodule(qt3輸入模組預設被關閉,要去configure中打開後再編,改成:use_qt3='Y'):

libqt3-mt-dev

qt4-immodule:

libqt4-dev

如需要下列2個輸入法,請加裝下列套件:

新酷音(實驗中):

libchewing3-dev

日文輸入法(anthy):

libanthy-dev

 

參考資料:

http://cle.linux.org.tw/trac/wiki/GcinPackageDeb?format=txt

edited: 1
guest
4
Promote 0 Bookmark 02011-12-25quote  

感謝winlin大解惑!

brli
5
Promote 0 Bookmark 02011-12-27quote  

我是使用ubuntu10.04

想自己編gcin

sudo apt-get install libchewing3-dev
正在讀取套件清單... 完成
正在重建相依關係          
正在讀取狀態資料... 完成
有些套件無法安裝。這可能意謂著您的要求難以解決,或是若您使用的是
unstable 發行版,可能有些必要的套件尚未建立,或是被移出 Incoming 了。
以下的資訊或許有助於解決當前的情況:

下列的套件有未滿足的相依關係:
  libchewing3-dev: 相依關係: libchewing3 (= 0.3.2-2) 但 0.3.2-2ubuntu0.1 卻將被安裝
E: 損毀的套件

 

滿奇怪的XD

edited: 1
winlin
6
Promote 0 Bookmark 02011-12-27quote  

brli

我是使用ubuntu10.04

想自己編gcin

sudo apt-get install libchewing3-dev
正在讀取套件清單... 完成
正在重建相依關係          
正在讀取狀態資料... 完成
有些套件無法安裝。這可能意謂著您的要求難以解決,或是若您使用的是
unstable 發行版,可能有些必要的套件尚未建立,或是被移出 Incoming 了。
以下的資訊或許有助於解決當前的情況:

下列的套件有未滿足的相依關係:
  libchewing3-dev: 相依關係: libchewing3 (= 0.3.2-2) 但 0.3.2-2ubuntu0.1 卻將被安裝
E: 損毀的套件

 

滿奇怪的XD

可以考慮apt-get update之後再裝一次看看?

eliu
7
Promote 0 Bookmark 02011-12-27quote  
coolcd
8
Promote 0 Bookmark 02011-12-27quote  

在 debian stable 使用 gen-deb,發現以下訊息

sh debian/ckqt.sh
Cannot load module /root/gcin-2.6.8/debian/gcin/usr/lib/gtk-2.0/2.10.0/immodules/im-gcin.so: libgcin-im-client.so.1: cannot open shared object file: No such file or directory
/root/gcin-2.6.8/debian/gcin/usr/lib/gtk-2.0/2.10.0/immodules/im-gcin.so does not export GTK+ IM module API: libgcin-im-client.so.1: cannot open shared object file: No such file or directory

似是 ckqt.sh 中的下列指令造成

gtk-query-immodules-2.0 "debian/gcin/usr/lib/gtk-2.0/2.10.0/immodules/im-gcin.so"

不知道是不是編譯過程有錯?

編出來的東西在這裡



eliu
9
Promote 0 Bookmark 02011-12-28quote  

coolcd
gtk-query-immodules-2.0 "debian/gcin/usr/lib/gtk-2.0/2.10.0/immodules/im-gcin.so"
那就先把這一行 delete 掉試試看

IanHo
10
Promote 0 Bookmark 02012-03-01quote  

編譯過程出現錯誤狀況如下,
系統環境為 debian 6.0.4 (amd64)+gnome , 只有單純stable環境裝於虛擬機器中,
有事先執行"徹底移除"套件名稱中包含了gcin字樣的套件,
在圖形介面的synaptic執行安裝了 dh-make autotools-dev libqt4-dev libchewing3-dev ,
但是在synaptic "找不到 libgtk-3-dev", 所以突發奇想的先用 libgtk2.0-dev 替代安裝,

然後我下載了 gcin-2.7.4.tar.xz 並且在圖形介面下使用 壓縮檔管理員解壓縮,
然後如下執行:

root@debian604:/home/ian/Downloads/gcin-2.7.4# ./gen-deb
patching file debian/changelog
patching file debian/ckqt.sh
patching file debian/compat
patching file debian/control
patching file debian/gcin.immodules
patching file debian/im-switch/gcin
patching file debian/install
patching file debian/postinst
patching file debian/prerm
patching file debian/rules
dpkg-buildpackage: export CFLAGS from dpkg-buildflags (origin: vendor): -g -O2
dpkg-buildpackage: export CPPFLAGS from dpkg-buildflags (origin: vendor):
dpkg-buildpackage: export CXXFLAGS from dpkg-buildflags (origin: vendor): -g -O2
dpkg-buildpackage: export FFLAGS from dpkg-buildflags (origin: vendor): -g -O2
dpkg-buildpackage: export LDFLAGS from dpkg-buildflags (origin: vendor):
dpkg-buildpackage: source package gcin
dpkg-buildpackage: source version 2.7.4-0
dpkg-buildpackage: source changed by Edward Liu <xxxx@yyy.org>
dpkg-buildpackage: host architecture amd64
dpkg-source --before-build gcin-2.7.4
dpkg-checkbuilddeps: Unmet build dependencies: libxtst-dev
dpkg-buildpackage: warning: Build dependencies/conflicts unsatisfied; aborting.
dpkg-buildpackage: warning: (Use -d flag to override.)

就是最後出現了錯誤訊息,我看不懂,也沒有生成任何DEB檔案,接下來該怎麼辦?

eliu
11
Promote 0 Bookmark 02012-03-01quote  
IanHo
12
Promote 0 Bookmark 02012-03-02quote  

eliu

 

需要 install libxtst-dev

感謝提供關鍵資訊~ 已安裝 libxtst-dev ~可是在編譯過程中又有出現多次錯誤訊息穿插其中

Makefile:263: .depend: 沒有此一檔案或目錄


Makefile:54: .depend: 沒有此一檔案或目錄


Makefile:51: .depend: 沒有此一檔案或目錄


Makefile:38: .depend: 沒有此一檔案或目錄

 

可是我查一下 

root@debian604:/home/ian/Downloads/gcin-2.7.4/.depend (檔案大小約1.6MB ~檔案日期是編譯執行當下的大約時間點)

這個檔案明明存在阿!?

所以雖然現在deb檔案生成了~可是我還不敢用~因為 不曉得這個 .depend 是怎麼一回事 ?  

 

eliu
13
Promote 0 Bookmark 02012-03-02quote  
IanHo
14
Promote 0 Bookmark 02012-03-02quote  

eliu

可以忽略 .depend 的錯誤

安裝結果還是一堆狀況~

一開始在圖形介面安裝deb的時候用的是 gdebi package installer ~

使用的是一般帳號(非root)環境~

安裝完畢後 gnome的 輸入法切換器 有換成了gcin ~

為了以防萬一 我有把舊的 debian604:/home/ian/.gcin 先移除~

然後重開系統 讓  debian604:/home/ian/.gcin 生成新的出來~

再來gnome 選單列 有出現 GCIN (EN) 的圖示了~

有在圖形介面的 gcin輸入法設定 裏頭依個人需求跑過一輪~

選單列gcin圖示滑鼠右鍵點選也沒有當掉系統了~

"可是" 這次變成滑鼠左鍵沒有反應了 (還好沒有當掉系統)~

可選用的輸入法模組預設清單洋洋灑灑一堆~我用滑鼠左鍵去點選切換別的輸入法模組~

都"沒有"任何圖示或訊息的變更或回櫃~

用組合建 ctrl+alt+XXX 去嘗試也是一樣沒有反應~

在圖形介面的gedit裏頭還是"只能輸入英文"~

怎麼會這樣 ? 然後我嘗試去看syslog 也完全看不出所以然來~

 

 

 

coolcd
15
Promote 0 Bookmark 02012-03-02quote  

IanHo

 

安裝結果還是一堆狀況~

一開始在圖形介面安裝deb的時候用的是 gdebi package installer ~

使用的是一般帳號(非root)環境~

安裝完畢後 gnome的 輸入法切換器 有換成了gcin ~

為了以防萬一 我有把舊的 debian604:/home/ian/.gcin 先移除~

然後重開系統 讓  debian604:/home/ian/.gcin 生成新的出來~

再來gnome 選單列 有出現 GCIN (EN) 的圖示了~

有在圖形介面的 gcin輸入法設定 裏頭依個人需求跑過一輪~

選單列gcin圖示滑鼠右鍵點選也沒有當掉系統了~

"可是" 這次變成滑鼠左鍵沒有反應了 (還好沒有當掉系統)~

可選用的輸入法模組預設清單洋洋灑灑一堆~我用滑鼠左鍵去點選切換別的輸入法模組~

都"沒有"任何圖示或訊息的變更或回櫃~

用組合建 ctrl+alt+XXX 去嘗試也是一樣沒有反應~

在圖形介面的gedit裏頭還是"只能輸入英文"~

怎麼會這樣 ? 然後我嘗試去看syslog 也完全看不出所以然來~

可以砍掉 gcin,在 terminal 跑 gcin,看看有沒有什麼錯誤訊息

IanHo
16
Promote 0 Bookmark 02012-03-02quote  

coolcd

可以砍掉 gcin,在 terminal 跑 gcin,看看有沒有什麼錯誤訊息

我開了終端機視窗 切換到root帳號 然後執行指令 gcin-exit

gnome選單列的 gcin圖示就消失了~ 然後我又執行指令 gcin

然後 gnome選單列的 gcin圖示又回來了~ 

然後 終端機視窗裏頭"沒有"出現任何新的訊息~

然後操作的情境跟我之前的PO文還是一樣~

到底問題出在哪裡呢?

IanHo
17
Promote 0 Bookmark 02012-03-02quote  

我做了一個嘗試,我用root帳號把 /var/log/ 底下的檔案全部砍光光,
然後重開系統,然後用 gnome 紀錄檔檢視器 地毯式的看了一遍(資料量比之前少很多),
然後我列出我覺可疑的內容如下,
syslog
Mar 3 01:24:47 debian604 gdm-simple-greeter[1299]: WARNING: Failed to send buffer
daemon.log
Mar 3 00:38:07 debian604 gdm-simple-greeter[1299]: Gtk-WARNING: /scratch/build-area/gtk+2.0-2.20.1/gtk/gtkwidget.c:5628: widget not within a GtkWindow
Mar 3 01:24:47 debian604 gdm-simple-greeter[1299]: WARNING: Failed to send buffer
然後我的系統是 debian604(amd64) 單純 stable, sources.list沒有加掛其他testing之類的來源,
可是在synaptic裏頭"找不到"任何類似 gtk"3" 版本之類的套件阿!
最高也只有gtk"2"系列的一拖拉庫套件,我還能怎麼辦呢?

 

guest
18
Promote 0 Bookmark 02012-03-02quote  

IanHo

然後我的系統是 debian604(amd64) 單純 stable, sources.list沒有加掛其他testing之類的來源,
可是在synaptic裏頭"找不到"任何類似 gtk"3" 版本之類的套件阿!
最高也只有gtk"2"系列的一拖拉庫套件,我還能怎麼辦呢?

 

debian 6(squeeze)本來就沒有gtk3了,

要到下一版wheezy才會有。

要自己編gcin的話就要去掉gtk3的部份。

IanHo
19
Promote 0 Bookmark 02012-03-02quote  

guest

 

debian 6(squeeze)本來就沒有gtk3了,

要到下一版wheezy才會有。

要自己編gcin的話就要去掉gtk3的部份。

要如何去掉呢?

winlin
20
Promote 0 Bookmark 02012-03-02quote  

IanHo

要如何去掉呢?

gcin source中有一個檔案configure

找到下面這個段落,把use_gtk3='Y',改成use_gtk3='N'

prefix="/usr/local"
use_xim='Y'
use_tray='Y'
use_i18n='N'
use_tsin='Y'
use_gcb='Y'
use_anthy='Y'
use_chewing='Y'
use_qt3='Y'
use_qt4='Y'
use_gtk3='N'

 

然後再用gen-deb重編一次gcin

IanHo
21
Promote 0 Bookmark 02012-03-03quote  

照著做之後~現在連對gnome選單列上的gcin圖是點選滑鼠左鍵都會造成整個系統死當了~

連開個gedit之後要切換輸入法就會整個系統死當~

還好只是在VM裏頭測試~ 看樣子要重灌了~

只不過想要在~ debian 6.0.4(amd64)stable 安裝個最新版的gcin 怎麼這麼多災多難阿!?

winlin

gcin source中有一個檔案configure

找到下面這個段落,把use_gtk3='Y',改成use_gtk3='N'

prefix="/usr/local"
use_xim='Y'
use_tray='Y'
use_i18n='N'
use_tsin='Y'
use_gcb='Y'
use_anthy='Y'
use_chewing='Y'
use_qt3='Y'
use_qt4='Y'
use_gtk3='N'

 

然後再用gen-deb重編一次gcin

winlin
22
Promote 0 Bookmark 02012-03-03quote  

IanHo

還好只是在VM裏頭測試~ 看樣子要重灌了~

重新開機後,按Ctrl+Alt+1到終端機模式,下指令把gcin從系統中移除就行了,應該不至於需要重灌。

eliu
23
Promote 0 Bookmark 02012-03-03quote  
IanHo
24
Promote 0 Bookmark 02012-03-03quote  

eliu

gcin 會把 vm 搞當,那應該不是 gcin 的問題。

那請問還有些什麼樣的"不會太複雜的""可以自行手動操作的"解決方案或步驟~

能夠讓我的 debian6.0.4(amd64)stable 可以順利安裝上 新版的gcin~

而且不會對選單列的gcin圖示點選滑鼠左鍵或右鍵之後就系統死當呢?

32bit 環境如果沒問題的話~照理說~我的64bit環境也應該要沒問題才對阿!

怎麼現在況狀這麼多!?

根據之前PO的syslog ~有可能問題出在一種叫做gtk類型的套件上~問題是 在synaptic 搜尋gtk字樣~

洋洋灑灑一拖拉庫套件~我哪知道哪個是哪個!? 傷腦筋~災難~

 

 

 

coolcd
25
Promote 0 Bookmark 02012-03-03quote  

IanHo
那請問還有些什麼樣的"不會太複雜的""可以自行手動操作的"解決方案或步驟~

能夠讓我的 debian6.0.4(amd64)stable 可以順利安裝上 新版的gcin~

而且不會對選單列的gcin圖示點選滑鼠左鍵或右鍵之後就系統死當呢?

32bit 環境如果沒問題的話~照理說~我的64bit環境也應該要沒問題才對阿!

這是那門子的道理 XD

32bit/64bit 差很多的

64bit 系統還多了 32bit/64bit lib 的問題

各 distro 可能處理方式都不太一樣

打包出錯的機率蠻大的

對一般使用者來說,更是怎麼死的都不知道 XD

winlin
26
Promote 0 Bookmark 02012-03-04quote  

IanHo

那請問還有些什麼樣的"不會太複雜的""可以自行手動操作的"解決方案或步驟~

能夠讓我的 debian6.0.4(amd64)stable 可以順利安裝上 新版的gcin~

而且不會對選單列的gcin圖示點選滑鼠左鍵或右鍵之後就系統死當呢?

很想幫忙,但手邊完全沒有64bit的機器,真歹勢~
可能要再問問看用64bit系統的人

IanHo
27
Promote 0 Bookmark 02012-03-04quote  

winlin

很想幫忙,但手邊完全沒有64bit的機器,真歹勢~
可能要再問問看用64bit系統的人

 寫些情緒用語~

在輸入法框架軟體這方面我很想支持國產貨~

然而我需要的就是"馬上設定立即可用"的環境~

例如在MacOSX環境我就使用開放香草輸入法框架~

可是在debian6.0.4(amd64)stable+gnome環境~

想要用gcin or HIME 搞了好久卻又狀況一大堆~沒辦法依我的需求馬上設定立即可用~

連iBus也是一堆狀況~目前反而最後只剩下scim達到了馬上設定立即可用的情境~

這是對岸的產品~

都馬是圖形介面~不過就是下載套件檔案安裝執行再勾勾選選程式設定畫面~

MsWindows從沒遇到什麼問題過~MacOSX遇到的狀況來回幾次就有解了~

沒道理同樣是圖形介面的 linux+gnome 狀況一堆到現在還無解阿?

情緒用語結束~

 

 

 

eliu
28
Promote 0 Bookmark 02012-03-04quote  

gen-deb 做出來的 .deb 我在 ubuntu 2011.10 確實是 install 完就可以用的,不過是 x86 的,amd64 沒試過。

winlin
29
Promote 0 Bookmark 02012-03-04quote  

IanHo

寫些情緒用語~

辛苦了~

很多年前Linux下的應用程式很不夠的時候,小弟也碰到不少難搞的事覺得很煩,相信這種心情很多人都有過。

目前站上似乎沒有人在Debian stable amd64上用gcin(或許有,只是還沒有發言?)

希望IanHo未來若解決了這個問題,麻煩分享一下心得,好讓其他後進可以受惠。Smile

eliu
30
Promote 0 Bookmark 02012-03-04quote  

這篇是在 ubuntu 11.10 amd64 (x64) 用 gcin 輸入的,可以試試 2.7.5。改用 medicalwei 提供的 debian build package.

所以 gcin 在 amd64(x64) 是 ok的。

edited: 1
1,2,next

cht電腦資訊gcingcin分享
adm Find login register
views:164207