Terminal 下的複製與貼上

複製與貼上是透過 xsel 指令,例如:

    • 複製到剪貼簿:xsel –clipboard < your_file
    • 將內容輸出到指定檔案: xsel –clipboard > your_new_file
    • 將指定字串放到剪貼簿裡:echo “your_text” | xsel –clipboard

如果連線到遠端,也可以使用,但是 ssh 連線時,必須加上 -Y 參數,或是在設定檔裡加上 ForwardX11 yes 跟 ForwardX11Trusted yes 。

另外再介紹 parcellite,這是一個剪貼簿的管理程式,類似 Windows 的 ditto。在啟動以後,按下 ctrl+alt+h 就可以叫出來,這時可以看到剪貼簿的過往紀錄。

參考資料:

Python InsecurePlatformWarning

碰到這個歡樂的錯誤,其實已經碰過兩三次了,前面幾次都不了了之。

InsecurePlatformWarning: A true SSLContext object is not available.

這次是確實的找到方法可以不用改程式避掉的方法,方法很簡單,就是安裝 pyopenssl ndg-httpsclient pyasn1 這幾個模組,這幾個模組會自動將 SSL 相關的憑證注射到 urllib3 模組裡,下載時就不會有 InsecurePlatformWarning 的警告。

這方法是在 StackOverflow 的 python – InsecurePlatformWarning: A true SSLContext object is not available. This prevents urllib3 from configuring SSL appropriately 看到解法的,感謝。

git clone fail

遇到下面這錯誤~

$ git clone http://your_host/your_group/your_project.git
Cloning into 'your_project'...
remote: Counting objects: 426, done.
remote: Compressing objects: 100% (375/375), done.
fatal: The remote end hung up unexpectedly
fatal: early EOF
fatal: index-pack failed

過程大致就如 gitlab – error: git-upload-pack died of signal 13 – Stack Overflow

所以我試過 git config –global http.postBuffer 524288000 ,也試著加過 GIT_CURL_VERBOSE ,但都看不出什麼端倪,伺服器上的 log 也沒看到,最後就如 gitlab – error: git-upload-pack died of signal 13 – Stack Overflow 的解答所說,是 permission 問題。我猜可能是我有調整 nginx user 的關係,導致錯誤。後來就是依據 log 裡的提示,調整 /var/run/nginx/proxy 下資料夾的 owner 就解決問題了。

Ansible mysql 相關模組所需的套件

使用 mysql_usermysql_db 這兩個模組時,Target 方必須要安裝幾個套件才能運作,否則會有錯誤

msg: the python mysqldb module is required

在 Ubuntu 裡要裝的是 python-mysqldb 、mysql-server  。python-mysqldb 是必要的,因為 python 的程式會需要用到這個模組;而 mysql-server 則要視你的 mysql server 所在機器而定,如果是在其他機器上,就可以不需要安裝。

Use NFS as synced folder in Vagrant

Just note during I use NFS as synced folder in Vagrant.

  1. In your host, you have to install nfs-kernel-server:
    sudo apt-get install nfs-kernel-server
  2. In your Vagrantfile, you have to specify private_network even you want to use public_network.  If you don’t specify private_network, vagrant up will fail.  Then specify synced_folder.
    config.vm.network "private_network", ip: "192.168.33.10"
    config.vm.network "public_network", ip: "192.168.11.2", bridge: "eth0"
    config.vm.synced_folder ".", "/vagrant", type: "nfs"

Reference:

Import Vagrant box into VirtualBox

vagrant package 得到的 package.box 實際上是一個 tarball 檔案,用 tar xzf 就可以解開。裏面會有 box.ovf, *.vmdk, private key … 等檔案,使用 vboxmanage import box.ovf 就可以匯入。

在匯入以後,要注意幾點,第一個是名稱,名稱是之前 Vagrantfile 所在目錄的名稱再加上一串數字,你可以用 vboxmanage modifyvm your_vm –name “new name”。

第二個是網路介面名稱,因為在你匯入的機器上可能沒有這個網路介面,如果你跟我一樣在 Vagrantfile 裡是設定用 public network 的話,可以用 vboxmanage modifyvm your_vm –bridgeadapterN new_network_adapter 來替換,那如果是用 private network 之類的,也是用 modifyvm ,總之原理一樣就是。

其他你可能還會用到的指令:

  • 列出 VirtualBox 裡有哪些 VM:vboxmanage list vms
  • 列出指定 VM 的資訊:vboxmanage showvminfo your_vm
  • 刪除 VM:vboxmanage unregistervm your_vm –delete

簡單的組合技可以參考這個 gist

Build pcmanfm-qt in Ubuntu trusty

Just summary build steps.

First, you need to install these packages: qt5-default, qtchooser, qt5-qmake, appmenu-qt5, qtdeclarative5-dev, qttools5-dev, qttools5-dev-tools, libqt5x11extras5-dev, libglib2.0-dev, libgio2.0-cil-dev, libfm-dev, libmenu-cache-dev

Then clone pcmanfm-qt from https://github.com/lxde/pcmanfm-qt

Enter pcmanfm-qt directory, type: cmake -G “Unix Makefiles”, then run: make && make install

After installation, you need to add a file “x86_64-linux-gnu-local.conf” in /etc/ld.so.conf.d and put “/usr/local/lib/x86_64-linux-gnu/” in it.  Run sudo ldconfig to make the setting available.

電影流水帳(2015/5/4~2015/5/20)

Sofia Boutella Sofia Boutella ,在 Kingsman 裡飾演冷酷女殺手,沒有小腿,但卻以殺人武器當作義肢,身手矯健。

  • The man from Earth (IMDB, Wikipedia) 。這部電影以前就看過了,這次是特地又找來重看一次的。
    John Oldman 突然要離職,學校裡的同事、好友到他家送行,並帶了些食物跟好酒來送行。朋友就問怎麼會想離職遠走呢?John 本來是不想講的,後來還是決定講出他活了一萬三千年的事情。好友們訝異了,開始詢問並試圖看看 John 是不是瘋了。整場戲都在 John 的房子裡上演,最遠也不過離開房子不到一百公尺。
    在最後結局以前,對於主角 John Oldman 的說辭,其實是很難辯駁他真實性的,很多問題都以巧妙的說辭避過。但討論到宗教的時候,在場的某些信徒就難以接受了,後來 John 為了不撕破臉,就自己承認前面講的都是一時興起的謊言,這才讓這場送別會圓滿落幕。
    最後,John 跟密友說了一些事情,被另外一個朋友聽到,才知道 John 是他爸爸,在他小時候就離開了,不知去向,整個人嚇到心臟病發就走了。旋即,John 也離開。
  • Kingsman (IMDB, Wikipedia),台譯:金牌特務。Kingsman 是個神祕的特務組織,不隸屬於世界各國,以自身的資金獨立運作,所以世界各國沒人知道有這麼一個組織。
    一開始 Harry Hart 出任務,任務出了差錯,他的手下幫他擋了炸彈,為了感念其手下,Harry 給手下的兒子 Eggsy 一個特殊的牌子,說以後有事情可以打電話給他。後來,當然是有事了,Eggsy 被逮到警局,於是 Eggsy 就打了電話給 Harry ,就順利出來了。Eggsy 透過這層因緣加入了這個神祕的特務組織,進行培訓。
    Valentine 就是壞蛋,以富可敵國的財富免費發送帶有免費網路服務的 sim 卡給普羅大眾,並且準備利用這塊 sim 卡控制手機發射神祕訊號,讓人類自相殘殺。Kingsman 其實早就注意到 Valentine ,早就開始進行滲透、調查,調查之後,發現了 Valentine 的陰謀。但是在此同時,Valentine 也已經滲透、收買了各國高層,並且也試著在 Harry 身上做了實驗,發現效果非常的好。後來,Harry 被殺,Eggsy 發現了組織內部的高層也被收買,在排除高層之後,跟組織內的其他伙伴一起阻止 Valentine ,經過一番努力,終於成功。
    很好看的一部電影,整個故事的節奏很明快,動作戲也很精彩。
  • 重慶森林 (IMDB, Wikipedia)。重新又拿出來回味啦~
    第一段故事是失戀警察與神祕女子的故事,神祕女子從事走私毒品的工作,找了一堆印度人,幫他們買東西,然後印度人則負責運毒,只是這些印度人到了機場,就趁機逃走了。神祕女子只好四處找人,最後沒辦法,跑去酒吧買醉,邂逅了失戀的警察。這場邂逅蠻莫名其妙的,只能算是失戀警察的一廂情願吧。之後,神祕女子殺了託她運毒的老闆就消失無蹤,而失戀警察也走出失戀陰影。
    第二段故事也是失戀警察的故事,警察的女友是空姊,某天空姊拿了信給小吃店,託老闆拿給警察,結果小吃店裡的人都知道警察被甩了。小吃店裡打工的女孩看完以後,要拿信給警察,警察拒收。後來女孩意外知道了警察住哪裡,就拿著信裡的鑰匙跑去警察家裡把他家裡東西替換掉。經歷過這段奇妙的遭遇,警察想追女孩了,可是女孩卻離開去當了空姊,說一年以後再見面。隔了一年以後回來,女孩等不到警察,走到以前打工的小吃店,卻發現警察就在那裡。原來警察不當警察了,買下了小吃店,正在裝潢,並且等著女孩…

猜編碼、轉換編碼與簡繁轉換

猜編碼,可以使用 enca 指令。安裝可以用 sudo apt-get install enca ,要猜的時候,就用 enca your_file 。除了會顯示檔案內容所使用的編碼名稱之外,也會顯示所使用的換行字元是 CR 或 CRLF 。

轉換編碼,可以用 iconv ,一般不需要特別安裝就會有了,真要安裝的話,用 sudo apt-get install libc-bin ,使用方法則是 iconv -f from_code -t to_code -o new_file your_file ,-f from_code 是指定 your_file 的編碼,-t to_code 是新檔案的編碼,-o new_file 則是要輸出的新檔案。例如:iconv -f big5 -t utf-8 -o new_file.txt your_file.txt

要省麻煩的話,最佳的神器是 madedit ,不過這個專案停止維護一段時間了,要使用的話,就得有點 C/C++ 的底子,自己下載原始碼來編譯。一般的文字編輯軟體或 IDE 也可以用啦,只是就沒 madedit 那麼好用了。

簡繁的轉換,在瀏覽器 (Firefox/Chrome) 上可以用「新同文堂」,指令的話可以用 opencc :

  • 簡轉繁:opencc -i old_file -o new_file -c /usr/lib/x86_64-linux-gnu/opencc/zhs2zhtw_p.ini
  • 繁轉簡:opencc -i old_file -o new_file -c /usr/lib/x86_64-linux-gnu/opencc/zht2zhs.ini

這邊比較讓人困惑的地方大概就是 -c 的設定檔,設定檔定義簡轉繁或繁轉簡的動作(也可以轉成香港用字),而這些設定檔則是被包在 libopencc1 裡,用 dpkg -L libopencc1 就可以看到了。

以上都是在 ubuntu 14.04 裡使用,其他 distro 應該也是大同小異,指令一樣,就套件名稱不同而已。

LTS Enablement Stacks – trusty to utopic

要把 trusty 的 kernel 跟 xserver 升級到目前 utopic ,可以參考這篇 Kernel/LTSEnablementStack – Ubuntu Wiki

其實就是 apt-get install 相關的 package 而已:sudo apt-get install –install-recommends linux-generic-lts-utopic xserver-xorg-lts-utopic libgl1-mesa-glx-lts-utopic libegl1-mesa-drivers-lts-utopic

伺服器版的話,因為沒有 xserver 的牽絆,只要 sudo apt-get install –install-recommends linux-generic-lts-utopic 就可以。

要特別注意的,就是在安裝過程會移除掉某些 package,這裡要特別留意,在安裝前 apt 會有事先提示。以我來說,skype 、google earth 跟 wine 都被移除掉,所以在安裝完重開機以後,要記得把這些軟體裝回去。

這次升級的意外發現是 Google earth 不需要額外處理就有中文顯示了,終於啊…