不知道是誰翻譯的,雖然不算完全翻譯正確,但也算是讓人輕鬆一笑。
標籤: Linux
MySQL non-interactice installation
相信大家對這個畫面都不陌生:
除了 MySQL 5.7 的某幾個版本會自動產生 root 的 password 以外,大多都是在安裝時讓使用者自行輸入密碼。
但今天你不是手動安裝,而是寫 script 讓主機自行部屬,這下就麻煩了,因為你不可能每台主機都人工輸入密碼,另外像是 AWS 自動部屬的話,你大概連 console 都沒有。但若透過 debconf 是有機會做到完全自動安裝。
首先來安裝 debconf:
sudo apt-get install debconf
稍等為了讓大家看一下 deb 的 interactive mode 是怎麼撰寫的,在安裝 ar 套件:
sudo apt-get install binutils
今天要被我拿來操刀的是「mysql-community-server_5.7.27-1ubuntu18.04_amd64.deb」。先用 ar 把 deb 檔解開,可以看到同下方的檔案:
$ ls
control.tar.xz data.tar.xz debian-binary
這邊要解壓縮「tar xvf control.tar.xz」,解開後會多出幾個檔案:
$ ls
conffiles config control debian-binary postinst postrm preinst prerm templates
這邊只專注於「config」檔,其他檔案先不管。開啟「config」檔以後,大概可以看到幾個關鍵字,像是:
- db_input
- db_get
- db_fset
- mysql-community-server/root-pass
這幾個關鍵字和整個 shell script 就是用來和使用者互動的指令,也就是最上面看到的那張圖。經由 db_set + variable-name 就可以暫存使用者輸入的資料,接下來就透過這幾個變數來動手腳。
先告知 debconf 不使用互動的方式來安裝 deb:
export DEBIAN_FRONTEND="noninteractive"
既然沒有和使用者互動,理當不會有 root 密碼,但可透過「debconf-set-selections」的方式來幫 package 設定:
debconf-set-selections <<< "mysql-community-server/root-pass password root"
之後安裝時就不會出現使用者輸入提示視窗了:
dpkg -i mysql-community-server_5.7.27-1ubuntu18.04_amd64.deb
apt-get install -f # 安裝需要的 dependedncy
apt --fix-broken -y install
讓 less 可以顯示 ANSI 色彩
應該不少人有經驗,在使用 grep 時,要搜尋的關鍵字會用顏色 highlight 方便閱讀,例如:
$ ls -lh | grep php
-rw-rw-r-- 1 zero zero 178 Aug 22 19:15 autoload.php
drwxrwxr-x 3 zero zero 4.0K Aug 22 19:01 cakephp
drwxrwxr-x 5 zero zero 4.0K Aug 22 19:01 phpdocumentor
drwxrwxr-x 3 zero zero 4.0K Aug 22 19:01 phpoffice
drwxrwxr-x 3 zero zero 4.0K Aug 22 19:01 phpoption
drwxrwxr-x 3 zero zero 4.0K Aug 22 19:01 phpseclib
drwxrwxr-x 3 zero zero 4.0K Aug 22 19:01 phpspec
drwxrwxr-x 8 zero zero 4.0K Aug 22 19:01 phpunit
不過如果因為列表很長,在把搜尋結果 pipe 給 less 以後,顏色就消失了。
這其實是 grep 這邊會判斷 output 到哪一種型態的 I/O,像是後面接的是 bash pipe,grep 就會自動移除 ANSI color 的 syntax,畢竟不知道 pipe 資料給誰,如果後者不支援 ANSI color 就會變成亂碼。
如果很確定 pipe 後面的指令、工具支援 ANSI color 的指令,就可以下參數要求 grep 輸出顏色。例如:
$ ls -lh | grep php --color=always | less
-rw-rw-r-- 1 zero zero 178 Aug 22 19:15 autoload.php
drwxrwxr-x 3 zero zero 4.0K Aug 22 19:01 cakephp
drwxrwxr-x 5 zero zero 4.0K Aug 22 19:01 phpdocumentor
drwxrwxr-x 3 zero zero 4.0K Aug 22 19:01 phpoffice
drwxrwxr-x 3 zero zero 4.0K Aug 22 19:01 phpoption
drwxrwxr-x 3 zero zero 4.0K Aug 22 19:01 phpseclib
drwxrwxr-x 3 zero zero 4.0K Aug 22 19:01 phpspec
drwxrwxr-x 8 zero zero 4.0K Aug 22 19:01 phpunit
LibreOffice 加油啊
昨天鄰居想嘗試使用 Linux,大致上都沒什麼問題,但卡到二個點:
- 輸入法:沒有順手的輸入法 (倉頡)
- Office 文件工具組:LibreOffice 的操作實在很不直覺,從 M$ 跳到 LibreOffice 目前還沒聽過有人說好用的。
給台灣人的 Raspbian 懶人版映象檔
這幾天被 Raspbian 安裝搞得七葷八素,所以乾脆把幾個常用設定改好,直接打包給大家用。
我用的是 Raspbian Buster Lite:
- Version: June 2019
- Release Date: 2019-06-20
- Kernal version: 4.19
我調整過的設定 (目標是接上電源線即可遠端操作):
- Localization
- Locale:en_US.utf8 + zh_TW.utf8
- 時區:Asia/Taipei
- 鍵盤對應:en (US)
- Wify county:TW
- SSH 預設啟動 (port 2222)
- 有線網路自動 DHCP
- /etc/apt/source.list 的 source 改為 NCHC (快超多)
- 已經做過一次 apt-get update && apt-get upgrade
載點:https://mega.nz/#F!dR5EVABL!Nkynwg5ivQuRyRqpGz1Q4A
SHA1: 71664d5651d660077621f91b29edeecf4810a486
SHA256: 981a8ded523c30f06ec09292445255c55a862e5d756b4e0fff5f8d069ef35afa