雖然不是所有的網路程式都有內建 SOCKS proxy 支援,但我們可以透過 tsocks 讓任何程式走 SOCKS proxy 進行連線。
一般 distro 應該都有附,設定也只需要改 /etc/tsocks.conf、指定 SOCKS server 而已。
執行程式的時候只要在前面加個 LD_PRELOAD=/usr/lib/libtsocks.so 讓連結器優先載入 tsocks 的 shared object,就可以讓目標程式使用指定的 SOCKS proxy 連線。
2013年10月1日 星期二
2013年7月13日 星期六
人工封裝 deb 套件
deb 套件基本上是 debian-binary、control.tar.gz、data.tar.gz 三個檔案由 ar 壓起來的壓縮檔。debian-binary 內容為 deb 檔案格式的版本號,通常是 2.0。control.tar.gz 可以解出含有套件資訊的相關檔案,data.tar.gz 則為套件要安裝的內容本身。control 與 data 並不一定要 tar.gz,可以選用其他支援的壓縮格式。
以 Gnome 的 Archive Manager 將 deb 套件解壓縮會直接將 control.tar.gz 解成 DEBIAN 資料夾,並和 data.tar.gz 解出來的東西放在一起。debian-binary 則略過。
如果要解開成原始的三個檔案,可以用原始的 ar 命令:
壓回去的話要注意 debian-binary 一定要放最前面:
更方便的作法是利用 fakeroot 和 dpkg-deb 直接把 DEBIAN 資料夾和要安裝的東西包成 deb 套件:
以 Gnome 的 Archive Manager 將 deb 套件解壓縮會直接將 control.tar.gz 解成 DEBIAN 資料夾,並和 data.tar.gz 解出來的東西放在一起。debian-binary 則略過。
如果要解開成原始的三個檔案,可以用原始的 ar 命令:
$ ar x package.deb
壓回去的話要注意 debian-binary 一定要放最前面:
$ ar r package.deb debian-binary control.tar.gz data.tar.gz
更方便的作法是利用 fakeroot 和 dpkg-deb 直接把 DEBIAN 資料夾和要安裝的東西包成 deb 套件:
$ fakeroot dpkg-deb -b [input_dir] [output_deb]
2013年5月30日 星期四
empathy 登入時硬碟大量 I/O 造成系統停頓
Gnome 從 3.2 開始提供 gnome online account 服務,使用者可以加入 Google Talk 與 Facebook 帳號讓 empathy 自動連線並與 gnome-shell 整合。
不知道是不是 telepathy 的 bug 還是設計上本來就這樣,聯絡人的頭像似乎每次登入都會重新做快取,這對 Facebook 這種有大量聯絡人的帳號來說影響很大。每次登入 FB 帳號的時候都會因為硬碟狂轉導致系統停住好幾秒,運氣差的話可能還會觸發 gnome-shell 的當機 feature。
個人的解法是,既然他每次登入都重刷快取(快取都不快取了),那乾脆就丟 ramdisk 吧。在 ~/.cache/telepathy/ 建立一個指向 /tmp 的 symbolic link 並命名為 avatars:
原本的 avatars 資料夾可以刪除。這樣登入 FB 就不會讓系統卡住了。
不知道是不是 telepathy 的 bug 還是設計上本來就這樣,聯絡人的頭像似乎每次登入都會重新做快取,這對 Facebook 這種有大量聯絡人的帳號來說影響很大。每次登入 FB 帳號的時候都會因為硬碟狂轉導致系統停住好幾秒,運氣差的話可能還會觸發 gnome-shell 的當機 feature。
個人的解法是,既然他每次登入都重刷快取(快取都不快取了),那乾脆就丟 ramdisk 吧。在 ~/.cache/telepathy/ 建立一個指向 /tmp 的 symbolic link 並命名為 avatars:
$ ln -s /tmp ~/.cache/telepathy/avatars原本的 avatars 資料夾可以刪除。這樣登入 FB 就不會讓系統卡住了。
2013年5月24日 星期五
系統全域的 PATH 與 alias 設定
簡單地說會動到以下的設定檔:
首先來看 alias 放不同地方的效果:
再來是 PATH:
結論:
alias 放 /etc/bash.bashrc
PATH 寫在 /etc/profile 或 /etc/profile.d/*.sh
修改 login.defs 的 ENV_SUPATH 和 ENV_PATH 跟上面同步
- /etc/bash.bashrc
- /etc/profile 或 /etc/profile.d
- /etc/login.defs
首先來看 alias 放不同地方的效果:
- 所有的 interactive shell 有效
- login shell 有效,用 su 切換的使用者無效
再來是 PATH:
- 所有的 interactive shell 有效,X session 無效,su 後無效
- su 後無效其他有效
- 只有 su 有效
結論:
alias 放 /etc/bash.bashrc
PATH 寫在 /etc/profile 或 /etc/profile.d/*.sh
修改 login.defs 的 ENV_SUPATH 和 ENV_PATH 跟上面同步
2013年5月6日 星期一
目前的開發環境
| CPU | AMD Phenom x4 945 @3.0GHZ |
| MB | Gigabyte GA870A-UD3 rev. 2.0 |
| RAM | Kingston DDR3 1600 8GB (2GB x 4) |
| VGA | MSI NVIDIA GTX460 768MB |
| HDD | Liteon S100 64GB, WD FAEX SATA 6g 1TB |
| DVD-RW | LITEON iHAS324 |
| PSU | Seasonic X650 |
| LCD | AOC e2440h |
| Sound card | Onkyo SE200PCI |
| TV/Capture card | Timeleak U1, Compro E650 |
| OS | Debian 8.1 Jessie |
2013年4月24日 星期三
Debian 修改並重編譯套件
下載 source package
下載編譯時期需要的套件
修改原始碼以後,撰寫 changelog
編譯並產生套件
$ apt-get source [package]
下載編譯時期需要的套件
$ apt-get build-dep [package]
修改原始碼以後,撰寫 changelog
$ dch -i
編譯並產生套件
$ debuild -uc -us -b
Debian Wheezy ibus-chewing 新酷音部份設定值無法儲存的 bug
這個 bug 會發生在你變更 ibus-chewing 設定值的時候發生,症狀就是設定完按儲存以後重登,部份的設定值會被重設為最小值。最惱人的地方就是最大容納中文字數會只剩下八。單位似乎是 byte,所以在 utf8 環境下你大概打三個中文字就會被強制送出去。
新版的 ibus-chewing 已經修正了這個問題,但 Debian Wheezy 收錄的版本卻還是舊的 1.3.10。雖然個人四月初在 gentoo 那邊找到社群的 patch,也轉錄了這個 issue & patch 到 debian(#704947),不過似乎在 Wheezy 正式 release 之前是不會收的。
在 Debian 正式接受 patch 之前,可以暫時用筆者包的安裝檔:
新版的 ibus-chewing 已經修正了這個問題,但 Debian Wheezy 收錄的版本卻還是舊的 1.3.10。雖然個人四月初在 gentoo 那邊找到社群的 patch,也轉錄了這個 issue & patch 到 debian(#704947),不過似乎在 Wheezy 正式 release 之前是不會收的。
在 Debian 正式接受 patch 之前,可以暫時用筆者包的安裝檔:
訂閱:
文章 (Atom)