已經連續兩年都只用 Ubuntu/Firefox 申報稅務,雖然界面醜陋,使用經驗很糟糕。但是財政部算是努力支援不同的作業系統,今年甚至開始支援 Android Tablet 版本的電子申報程式

在 Linux/MacOS 上,你可以用網頁 Java Applet 版本的綜合所得稅電子結算申報繳稅系統網站 進行結算申報,這個系統大部分都是以 Java 完成,跨平台相容性頗佳。但如果你需要使用自然人憑證登入,需要額外安裝中華電信自然人憑證用戶端元件,這個元件使用 Native extension,跟往年一樣,只有支援 x86 版本。

根據 Ubuntu Popularity Contest 統計資料,amd64 (64 bit) 的使用者已經超越 i386 (32 bit)  使用者了。只支援 x86 ,代表使用者必須重新安裝一個新的作業系統才能正確執行自然人憑證用戶端元件。

去年,為了自然人憑證用戶端元件只支援 amd64 以及版次只支援舊版 Firefox,我發了信聯絡 HiPKI客服中心以及 關貿網路電子申報繳稅客服中心,收到兩封郵件

HiPKI客服中心: 關於綜合所得稅電子結算申報繳稅系統是由財政部委託關貿網路股份有限公司製作,若有使用上之建議請向財政部反應。

關貿網路電子申報繳稅客服中心: 客服中心已記錄您的建議事項,並反應給技術團隊,若造成您的困擾,敬請見諒!

 

沒有解決方案,最後是自己硬升級一包 Firefox extension 解決版次問題。至於 i386 只好建一個新的 Ubuntu 來安裝了。 希望來年可以直接支援 amd64 版本。另外今年的 irc.jar 裡面沒有不小心放進去的 .java.bak 檔案了。 (茶)

sbuild

在 amd64 環境安裝一個新的 i386 Ubuntu 有很多種方法,基本的工具是 debootstrap。 在 Ubuntu/Debian 中有不少工具可以協助你建立環境。我習慣用 sbuild / schroot ,這兩套平常當作編譯環境,但是借來快速建立 chroot 也非常方便。

最快速的方法,是用 mk-sbuild 設定一個新的環境,以下例子為建立一個 i386 的 trusty (14.04 LTS) Ubuntu chroot.

apt-get install schroot sbuild ubuntu-dev-tools pcscd
SCHROOT_PROFILE=default mk-sbuild --arch=i386 --debootstrap-include=firefox,fonts-unfonts-core,fonts-droid,openjdk-7-jre,icedtea-7-plugin --distro ubuntu trusty

完成之後,你可以用 schroot -l 來列出有哪些 chroot

$ schroot -l
chroot:trusty-i386
source:trusty-i386

接下來你需要更改預設的 profile 設定,檔案在 /etc/schroot/default/fstab 。請加入以下兩行,這是讓你在 schroot 中可以存取原系統中的檔案。其中 /var/run/pcscd 是 pcscd 的目錄,是系統用來接取自然人憑證用的。

/home        /home        none    rw,bind        0    0
/var/run/pcscd    /var/run/pcscd    none    rw,bind 0 0

注意 schroot -l 出現兩個名稱。你若使用 chroot:trusty-i386,系統會用 LVM snapshots 或 unions 建立一個暫時的環境,所有的改變都會在登出後遺失。所以你若需要更改 schroot 中安裝的的程式,請使用 source:trusty-i386.

sudo schroot -u root -c source:trusty-i386

若是一般使用者用途,則只需要

schroot -c chroot:trusty-i386

接下來即可執行 Firefox, 由於我們在兩個不同的系統間共用家目錄。我建議另外開一個專門的 Profile ,事後會比較容易清理。

DISPLAY=:0.0 firefox -no-remote -ProfileManager

接下來你就有一個在 i386 中執行的 Firefox 可以使用了。

這篇文章使用的軟體版本為


Ubuntu 14.04
debootstrap    1.0.59ubuntu0.1
firefox    29.0+build1-0ubuntu0.14.04.2
pcscd    1.8.10-1ubuntu1
sbuild    0.64.1-1ubuntu4
schroot    1.6.8-1ubuntu1
ubuntu-dev-tools    0.153

延伸閱讀

  • Eric

    我覺得採用美國國稅局一樣,提供通信協定,讓各個平台都能開發自己的報稅軟體。

  • Mark

    你好,在GitHub 上看到你寫的kermit.sh 檔案(https://gist.github.com/chihchun/764503),想冒昧請問你有點不相關的問題,若今天執行程式後,想要判斷Host 發出的訊息做出相對應的反應是否可行呢?
    ex: 接受到”select language” 自動回覆 “chinese”
    謝謝

  • Mark

    你好,抱歉打擾了,我找到解法了,原來只要用input 指令就可以偵測host 端相關訊息,之前雖然看過相關文件但是一時無法理解,謝謝