2017年11月26日 星期日

線上編輯與分享 Debian 與 Ubuntu 的自動安裝設定

多年前在弄 https://fourdollars.github.io/d-i/ 時,就已經想到這個主意了,趁這個週末有點時間就用 Python Flask 硬幹出來。

主要是利用下面的機制做出來的:

運作的原理是根據使用者的 IPv4 位址來儲存設定檔,所以另一台透過同樣的 IPv4 位址就可以拿到同一份設定檔,分享的時候也是透過分享 IPv4 位址來達成,但是只有該 IPv4 位址的使用者才能夠編輯給該 IPv4 位址使用的設定。

專案網址:https://fourdollars.github.io/diaas/

我另外弄了一個專門給 Ubuntu 台灣中文社群的通用設定在 https://sylee.org/d-i/?share=08080808,點進去後按下 Save 就可以使用了。

debian-installer (d-i) and preseed.cfg

There is an "Auto mode" while automating the Debian/Ubuntu installation using preseeding.

You can check Debian's or Ubuntu's documentions for details.

Basically if we have prepared a "preseed.cfg" at some right place, like http://example.com/d-i/stretch/preseed.cfg, and then we can use "auto url=example.com" to install Debian stretch by that "preseed.cfg".

"preseed.cfg" is usually a static file so I come out some ideas. How about making it dynamic and we can share it to others.

If you are interested, please check https://fourdollars.github.io/diaas/.

2017年11月23日 星期四

Python 套件的安全檢查 safety

使用 Python 來建立專案常常會需要拉一些額外的套件進來使用,然而有時候專案已經穩定不再增加新功能也不再修正錯誤時,就是只放著讓它在那邊自己跑著,只是說這個專案使用到的額外的套件難免會有一些未知的安全問題,這時候該怎麼辦呢?

於是我找到了 https://pypi.python.org/pypi/safety

執行

$ pip install safety
安裝起來,然後再執行
$ safety check
就可以看到結果。

或者是可以直接檢查 requirements.txt 這個檔案。

$ safety check -r requirements.txt
╒══════════════════════════════════════════════════════════════════════════════╕
│                                                                              │
│                               /$$$$$$            /$$                         │
│                              /$$__  $$          | $$                         │
│           /$$$$$$$  /$$$$$$ | $$  \__//$$$$$$  /$$$$$$   /$$   /$$           │
│          /$$_____/ |____  $$| $$$$   /$$__  $$|_  $$_/  | $$  | $$           │
│         |  $$$$$$   /$$$$$$$| $$_/  | $$$$$$$$  | $$    | $$  | $$           │
│          \____  $$ /$$__  $$| $$    | $$_____/  | $$ /$$| $$  | $$           │
│          /$$$$$$$/|  $$$$$$$| $$    |  $$$$$$$  |  $$$$/|  $$$$$$$           │
│         |_______/  \_______/|__/     \_______/   \___/   \____  $$           │
│                                                          /$$  | $$           │
│                                                         |  $$$$$$/           │
│  by pyup.io                                              \______/            │
│                                                                              │
╞══════════════════════════════════════════════════════════════════════════════╡
│ REPORT                                                                       │
│ checked 101 packages, using default DB                                       │
╞════════════════════════════╤═══════════╤══════════════════════════╤══════════╡
│ package                    │ installed │ affected                 │ ID       │
╞════════════════════════════╧═══════════╧══════════════════════════╧══════════╡
│ pillow                     │ 3.2.0     │ <3.3.2                   │ 33138    │
│ pillow                     │ 3.2.0     │ <3.3.2                   │ 33139    │
│ cryptography               │ 1.3.1     │ <1.5.3                   │ 25680    │
│ httplib2                   │ 0.9.2     │ <=0.9.2                  │ 25848    │
│ mistune                    │ 0.7.1     │ <0.7.2                   │ 25890    │
│ rsa                        │ 3.2.3     │ <3.3                     │ 33164    │
│ rsa                        │ 3.2.3     │ <3.4                     │ 26112    │
╘══════════════════════════════════════════════════════════════════════════════╛

看樣子只要將版本更新上去就沒問題了,當然原本專案的某些地方可能會跟著壞掉需要再修正一下。

最後是 https://pyup.io/ 對 GitHub 提供了 CI 的服務,public repo 可以免費使用。

2017年7月10日 星期一

自製 Ubuntu 16.04/16.04.1/16.04.2/16.10/17.04 測試硬體安裝使用的 USB 隨身碟

與「自製 Ubuntu 13.04/12.10/12.04.2 與 Debian 7.0 測試硬體安裝使用的 USB 隨身碟」同樣的步驟只是改用 grub.cfg 這個設定檔。

因為我是放在 8GB 的 USB 隨身碟上面,所以放這幾個 amd64 ISO 檔案就塞滿了。

另外我發現前一篇文章中的 usb-creator-gtk -n -i ubuntu-13.04-desktop-amd64.iso 這個步驟是多餘的,其實使用 grub-install 就夠了,還有這邊的 UEFI 模式不會支援 Secure Boot 因為 GRUB 的安全設定的關係。

2017年6月19日 星期一

拿到了 GNOME foundation membership

最近 GNOME 有推出個 Become a Foundation member 的活動,如果以前對 GNOME 做過不少貢獻就可以去申請成為會員,當然還要經過審核通過,我個人一直都是以開發者路線為主的,所以就是透過程式碼的貢獻拿到這個會員,然後就會得到一個 [at] gnome [dot] org 的 Email address alias,還會有什麼投票的權利,姓名也會出現在 Membership - GNOME 上面,應該還有一些額外的東西,不過我暫時還沒有空全部找出來,就只好先把 Email address alias 設定好,跟 Debian developer 一樣先擺著,現在寄信到 sylee [at] gnome [dot] org 也可以找到我,多了一個身份不曉得以後送 patch 會不會比較方便一些,就醬囉。

手動快速編譯 Ubuntu 16.04 當中 Linux kernel 4.4 裡面的 kernel module

以前寫過一篇「手動快速編譯 Ubuntu 14.04 當中 Linux kernel 裡面的 i915 module」這次是要針對 Ubuntu 16.04 LTS 上面的 Linux kernel 4.4 編譯,步驟都差不多只是有些不一樣的地方。

首先是 Linux kernel git tree 的來源改從 Launchpad 而來,是的! Ubuntu 使用的 Linux kernel 現在也放到 Launchpad 上面了。

$ git clone https://git.launchpad.net/~ubuntu-kernel/ubuntu/+source/linux/+git/xenial

然後是編譯的設定檔的位置不一樣了,不過大致上只要找出 config.common.ubuntu config.common.amd64 config.flavour.generic 這三個檔案的位置出來就可以了。

cat ./debian.master/config/config.common.ubuntu ./debian.master/config/amd64/config.common.amd64 ./debian.master/config/amd64/config.flavour.generic > .config

然後這次我的目標是 ubuntu/i915 底下的 kernel module 其它的部份就直接參考前一份文章就可以了。

2017年5月29日 星期一

成為 Debian Developer 之後的例行雜事

首先會收到一封含加密密碼的信件,使用自己的 PGP 解密後,就可以使用登入 https://db.debian.org/(這是第一組密碼),然後就可以修改自己在 https://sso.debian.org/ 上面的密碼(這是第二組密碼),登入 https://sso.debian.org/ 後就可以取得一組通行憑證給 Mozilla Firefox 使用,這個憑證之後可以使用在像是 https://tracker.debian.org/ 或是 https://nm.debian.org/ 上面,由於憑證是儲存在本機的瀏覽器裡面,所以有支援憑證登入的網站就不用再輸入密碼了。

另外就是可以到 https://alioth.debian.org/ 上面輸入自己 <username>@debian.org 的 <username> 然後按下忘記密碼來設定自己的密碼(這是第三組密碼),由於 https://alioth.debian.org/ 並沒有支援原本的 *-guest 帳號轉移,所以只能使用新帳號登入重新加入每一個之前加入過的專案,然後再請管理員將原本的 *-guest 帳號刪除掉,當然如果不在意的話,也可以繼續使用原本的 *-guest 帳號。

如果忘了https://db.debian.org/ 的密碼,可以參考 https://db.debian.org/doc-mail.html 寄信要求重設一組密碼。

echo "Please change my Debian password" | gpg --clearsign | mail chpasswd@db.debian.org

另外就是透過 SSH 登入的公鑰也可以透過寄信來設定。

cat .ssh/id_rsa.pub | gpg --clearsign | mail changes@db.debian.org

設定完 SSH 公鑰後就可以登入像是 people.debian.org 這樣的主機,來放自己的個人網頁 ~/public_html/index.html,例如: https://people.debian.org/~fourdollars/ 這樣。

https://db.debian.org/machines.cgi 上面列了一堆機器,目前還不曉得所有機器的使用方法,只知道要注意 https://www.debian.org/devel/dmup 上面的規範,不可以濫用大家共用的資源。