有同事問,印象中有,就試了一下
- 用 vagrant package 會得到 package.box 檔案,複製到另外一台電腦上。
- 到另外一台電腦上用 vagrant box add package.box –name “my_new_vm” 加進去。
- 建個目錄,用 vagrant init “my_new_vm” 產生 Vagrantfile ,執行 vagrant up 即可。
Just thinking more…
有同事問,印象中有,就試了一下
gitlab-ce 到 8.0 以後,就把 gitlab-ci 整進去了,要用 gitlab-ci ,需要安裝 gitlab-ci-multi-runner。
archlinux AUR 裡已經有人包進去了:
到 gitlab 專案設定裡的 runner 畫面去看,應該就會看到剛剛新增的 runner。
使用上可以參考這篇 gitlab ci quickstart 來做,大致就是在專案裡新增 .gitlab-ci.yml ,裏面填好要執行的步驟,加入 repository、提交、push,之後每次 push 時,就會執行 .gitlab-ci.yml 裡的步驟了。
本意只是想在 Raspberry PI 上裝 Ghost ,結果 node-sqlite3 裝不上去,Raspberry PI 版子速度又太慢,就想乾脆用 QEMU 摹擬 Raspberry PI。
用 QEMU 摹擬 Raspberry PI 可以參考這篇:Raspberry Pi • View topic – HOWTO: Virtual Raspbian on Qemu in Ubuntu Linux 12.10
裏面的步驟大致是這樣:
我目前是卡在 qemu 用的 kernel 上,原本想說直接拿 raspbian 的 kernel.img 來用,但發現不行。如果用文章裡作者提供的 zImage 是可以開機,但會有找不到 init 的情況。所以現在就朝自己編譯 kernel 的方向來做,這部份可以參考:
儘管如此,我編譯出來的 kernel 仍然無法順利開機,找時間再研究吧~
最近開 terminal 時,都會看到這樣的錯:
pyenv: no such command `virtualenv-init’
今天終於想要解決這問題了,找了一下,源頭是在 oh-my-zsh 的 virtualenv plugin 裡,裏面用了 eval “$(pyenv virtualenv-init – zsh)” ,循線追到 pyenv,發現是 pyenv 沒有 pyenv-virtualenv plugin 的關係。
依照 yyuu/pyenv-virtualenv 上的說明,執行以下指令,就解決問題了。
git clone https://github.com/yyuu/pyenv-virtualenv.git ~/.pyenv/plugins/pyenv-virtualenv
最後,順道更新 pyenv :cd ~/.pyenv && git pull –rebase origin master
同事找到這篇介紹 OpenKM 的文章:開源OpenKM文管系統 立即打造知識管理平台
想說就裝起來試試看好了,看到有人用 docker 搭起來,就照著做囉:使用docker在centos6.5上部署openkm详细过程
不過這篇文做法的缺點是,把原本的 /usr/local/tomcat 都移到 volume 裡去,這就等於是程式都放到外面去了。或許應該參考原本 mcsaky/openkm 的 Dockerfile 與 OpenKM Installation ,再來改寫 Dockerfile 會比較好一點。
反正只是先試試看,所以我也沒有用 nginx 擋在前面,直接用 tomcat ,就先這樣用吧~ 有需要的時候,再來研究看怎麼改寫。
Prometheus 是一個 Monitor 的服務,要收集 host 資訊要搭配 node-exporter,要有 dashboard ,可以搭配 promdash。
而這三者,都有 docker container image 可以下載,但是要怎麼搭在一起,可就讓人傷腦筋了。花了一些時間把他們三個兜在一起,寫成 docker-compose.yml ,這樣就可以用 docker-compose up 直接啟動這三個 container。
過程裡遇到幾個難題:
大概就這樣,目前執行結果看起來是沒問題,用一陣子看看吧。另外有在 https://hub.docker.com/u/prom/ 這裡看到不少 container image 可以拉下來組合的,以及 google 的 cAdvisor,有機會再來看看。
後記:實驗結果發現 node-exporter 不適合放在 docker container 裏面執行(跟 node-exporter 對應的,還有一個 container-exporter 專案,是專門收集 container 資訊的),因為會無法收集到關於 host 的資訊,所以 node-exporter 最好還是放在 host 執行,然後讓 prometheus 能存取到。另外,在找關於連結到 host 的部份時,看到有人提報一個 issue 給 docker,建議應該提供一個 –link-host 的功能,讓 container 裏面也能存取到 host,而不需要額外繞路取得。一般的繞路手法是透過 route 取得 gateway 位址,在某些情況下是還蠻麻煩的。
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 ,總之原理一樣就是。
其他你可能還會用到的指令:
簡單的組合技可以參考這個 gist
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.
猜編碼,可以使用 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 :
這邊比較讓人困惑的地方大概就是 -c 的設定檔,設定檔定義簡轉繁或繁轉簡的動作(也可以轉成香港用字),而這些設定檔則是被包在 libopencc1 裡,用 dpkg -L libopencc1 就可以看到了。
以上都是在 ubuntu 14.04 裡使用,其他 distro 應該也是大同小異,指令一樣,就套件名稱不同而已。
早前兩年就有打算參加,但始終都沒能報到名,這次終於在三月底趕上,成功的報名。如果想報名的話,最好是在三月中下旬就開始關注 101 大樓網站上的消息,才不會錯失良機。
為了走上 101 大樓,做了些訓練,第一個是跑步,不過這是前年年底就已經在做的事情了,不算是特別的訓練,大致就是一星期跑兩次,從兩公里、三公里,到後來改成持續跑 15 分鐘、20 分鐘到現在的 25 分鐘這樣。比較算是特別的應該是爬樓梯,每天上班爬十層樓,賽前開始改為爬 20 層、30 層。除了這些之外,就是調整呼吸,這是看朋友推薦的文章學到的,文章裡說呼吸最主要是吐氣,要以腹部出力吐氣,新鮮的空氣才進的來。之前我都是努力吸氣,結果效果不佳。看完文章以後,我持續在跑步與爬樓梯時試著這樣做,並且維持兩吸一吐的頻率。以我個人來說,我覺得這真的有效,在跑完步跟爬完樓梯時,呼吸會平復的比較快。
在登高賽前幾天有找別人的經驗分享文,說衣物、東西都不要寄在會場寄物櫃,看是著好服裝,空手帶健保卡、悠遊卡過去,或是在附近找寄物櫃,這樣都會比卡在大會那邊排隊來的快。所以我是直接著運動服裝過去,然後太太幫我拿著另一套衣服這樣,真的是非常感謝太太的幫忙。
比賽當天,最重要的事情就是不要遵守賽程表上規定的時間,你大概抓晚半小時到一小時過去就可以了。以今年來說,手冊上說我的號碼在 9:30 ~ 10:00 去體檢,10:00 出發,結果我到了 11:40 左右才進去大樓裡要爬樓梯。第二件重要的事情,就是在號碼差不多的時候,到集結點附近聽工作人員叫號。叫號其實聲音沒辦法傳很遠,然後一堆人圍在那邊,根本聽不到,最顯眼的 LED 看板卻偏偏又是打一個大的號碼範圍,像是 0~800 、 801~1600 這樣,對於這件事情我不是很理解,明確一點不是會更好嗎?當天的天氣很好,太陽很大,還好後來有雲層遮住太陽,要不然我看進去之前一堆人就中暑了。
進去爬樓梯以後,我沒依照我平常的速度走,然後走到內圈,心情緊張許多,導致速度比平常來的快許多,呼吸也比較喘,原本預定到 30 樓才休息的,到 20 樓就先去休息一下了。等出來,就改走外圈,不急不徐、一步一步往上走,每二十層休息一次。大樓裏面的休息站不是整數的,大致是 7 或 8 的倍數,59 層是一個比較特別的樓層,這裡除了是休息站,也是換班電梯的所在。總之,我記得我在 20 、40 、59、7x、83 都各休息了一下,有一層可以看到外面風景的,有停留比較久。樓梯間的空氣在某幾層時有比較悶熱,但有些樓層有排氣的關係,反而比較涼爽,大致上不會讓人有不舒服的感覺。
等到上去以後,請旁邊的跑者幫忙拍照留念以後,就開始找電梯了。結果繞了一圈以後,發現排隊搭電梯的人已經繞了一圈了,就趕緊跟著排,排隊的同時除了平復呼吸之外,也順便把大樓外的風景拍完了。所以,真的不要浪費時間在上面逗留,趕緊排隊才是正途。下電梯換了三次電梯,第一次是 91~90,第二次是 90~59 ,第三次是 59~1 。下到一樓以後就是領完賽證明跟其他一些東西了,有痠痛貼布、保健食品、飲料、獎牌等等。出口是往地下一樓走,話說,平常根本不會去 101 樓下逛,所以在樓下還迷路了,不知怎麼出去,還特地上去問工作人員怎麼走… 冏
嗯,大概就是這樣,算是了了一件心願,明年應該就會來試著跑 10 公里或半馬了。不過也有可能繼續自我挑戰而不參加比賽就是了,不太敢想像一邊在路邊跑、一邊吸廢氣的情況。