顯示具有 筆記 標籤的文章。 顯示所有文章
顯示具有 筆記 標籤的文章。 顯示所有文章

2019年8月2日 星期五

Debian 上 hp-setup 鬼打牆不斷要求安裝 proprietary plugin 的問題



HP 的印表機一直算是對 Linux 相當友善的廠牌,所以我選印表機首選都是 HP。而之前跑用 Kubuntu 為基底的 ezgo 時,安裝 hp 印表機的驅動很簡單,只要安裝 hplip 套件執行 hp-setup 後面就通通搞定了。

不過現在換用 Debian 為基底的 ezgo 時,卻出現兩個問題。第一個是下載 plugin 時,從 pgp.mit.edu 取得驗證公開金鑰時一直失敗,其次就是如下面截圖所示,明明告訴我裝好了,實際上卻仍是紅字告訴我需要安裝 proprietary plugin。





先講第一個問題。現在從 pgp.mit.edu 取得金鑰變得很困難,我還找不出是什麼原因,網路上也很少討論。我透過 kgpg 提供的伺服器,找到了另一個可以順利下載金鑰的伺服器 pool.sks-keyservers.net ,並在 gpg.conf 中把預設伺服器換成了這個。但 hp-setup 仍然是去找 pgp.mit.edu,於是我發現他們把下載金鑰的伺服器寫死在程式裡:

/usr/share/hplip/base/validation.py  line 43:

```
class GPG_Verification(DigiSign_Verification):
    def __init__(self, pgp_site = 'pgp.mit.edu', key = 0x4ABA2F66DBD5A95894910E0673D770CDA59047B9):
```


臉上頓時出現三條線... 把它改掉就可以順利下載金鑰了。


另一個問題則是在這裡找到解答:


https://www.linuxquestions.org/questions/linux-software-2/hplip-keeps-looping-at-plug-in-installation-4175647505/

看來是不同系統函式庫放的位置不同所造成... 依照其建議新增路徑與符號連結後就順利安裝成功了。

2019年7月11日 星期四

Debian Stretch 升級到 Debian Buster


Debian Buster 已發布,這兩天把 PVE 上三台 Debian server 通通升級。

第一台跑的是 Mastodon, prosidy 與 peertube,用的 webserver 是 nginx,資料庫則是 postgresql 與 mariadb。升級過程完全沒有問題,十分順利。

第二台跑的是協會的線上商店,還有一些實驗用網站(含 docker)。這一台升級完重開後,發現線上商店跑不起來。找了一會兒發現問題出在 php7.0 -> php7.3,apache module 中必須手動打開 php7.3 並關閉 php7.0 的模組。弄完後原有的服務就都順利跑起來。

第三台是我的主伺服器,上面跑了不少網站像是個人網站、nextcloud、協會官網等等。這台在升級後,先手動去把 php7.3 的模組打開,卻發現 Drupal 與 nextcloud 都出問題無法啟動。然後挖了錯誤紀錄一會兒之後就發現,連同第二台系統的經驗,php7 在 Debian 的 package naming,php7.0 -> php7.3 並不是「升級」,而是「安裝新套件」,所以一堆 php7.0-* 的外掛,像是 php7.3-gd, php7.3-zip, ... 等在升級過程中並不會自動加裝,必須手動安裝才行。

現在三台伺服器都已經安穩上線運行中。

2017年9月3日 星期日

open ftp passive mode with ufw


ufw allow ftp

/etc/proftpd/proftpd.conf:
PassivePorts  50000   51000

ufw allow proto tcp from any to any port 50000:51000

2017年2月26日 星期日

ezgo 使用者還原改寫為 systemd 系統


因為從原本的 SysV 改成 systemd,結果以前的使用者還原 script 全部要改寫。
研究了一下 systemd 的運作,終於改寫成功。

使用者還原:

產生兩個檔案:
/lib/systemd/system/multi-user.target.wants/recover_ezgo.service

內容:
[Unit]
Description=Recover user home contents #systemd service 的描述
Before=sddm.service #因為使用者家目錄的修改要在啟動 sddm 前做好,否則會出大亂子

[Service]
Type=oneshot
ExecStart=/usr/share/ezgo/recover/restore_ezgo.sh  #restore_ezgo.sh 是依據使用者選擇的帳號而產生

[Install]
WantedBy=multi-user.target


然後把它連結到 /etc/systemd/system/multi-user.target.wants/ 裡。這樣開機時就會在 sddm 執行 /usr/share/ezgo/recover/restore_ezgo.sh。

另外一個檔就是真正執行還原的,也就是 restore_ezgo.sh。裡面就是清掉家目錄的內容,再將先前備份的檔案放回去。


還原系統初始值:將家目錄整個砍掉重建,再把 /etc/skel 裡的內容放進去。
一樣放在開機時 sddm 執行前:

systemd 的部份要建立一個檔案: /lib/systemd/system/multi-user.target.wants/skel_ezgo.service

[Unit]
Description=Recover factory default for ezgo users
Before=sddm.service

[Service]
Type=oneshot
ExecStart=/usr/share/ezgo/recover/skel_ezgo.sh 

[Install]
WantedBy=multi-user.target

一樣把它連結到 /etc/systemd/system/multi-user.target.wants/ 中。這樣就能在 sddm 前執行。


2016年4月4日 星期一

ezgo13 KDE develop note


來寫點開發紀錄吧


  1. 之前 ezgo12 用 Kubuntu 14.04,legacy mode 開機畫面只要改 isolinux/gfxboot.cfg 把 hidden-timeout=2 拿掉,加上 foreground=0xFFFFFF 即可。但是用 16.04 做 ezgo13 時,同樣的方法卻失效了。後來發現是要改 isolinux/bootlogo。它本身是一個 cpio 起來的壓縮檔,所以要

    mkdir aa
    cd aa
    cpio -i < ../bootlogo


    解開來之後,之前在 isolinux 下修改的通通變成在這裡改(例如 lang, splash.pcx 等檔案),然後

    find . | cpio -o -H bin > ../bootlogo


    壓回去,結果就成功了。
  2. Plasma5 的 config 不再集中在 /usr/share/kde4,而是通通分散放到 /usr/share 下。家目錄中的 config 也是,之前都集中在 ~/.kde 或 ~/.kde4,現在則是通通放到 ~/.config 下。照開發團隊說法這樣「才符合標準」,但這樣要整個 reset 回一個 clean 的 KDE Plasma 5 環境變得非常麻煩...
  3. Plasma 5 似乎不吃 XDG_MENU_CONFIG,所以要手動改 menu  :(  把 ezgo-applications.menu 連到 kf5-applications.menu
  4. 安裝 ezgo-kde5 之後,還要修改以下地方:
    1. /usr/share/plasma/desktoptheme/*/metadata.desktop ,把下面 [Wallpaper] section 的 defaultWallpaperTheme 改成 ezgo,大小改成 1920x1080
    2. /usr/share/plasma/layout-templates/org.kde.plasma.desktop.defaultPanel/contents/layout.js 把它用 /usr/share/ezgo/ezgo-kde5/defaultPanel.layout.js 覆蓋掉。注意不能用 symlink。
    3. /usr/share/plasma/look-and-feel/org.kde.breeze.desktop/contents/components/artwork/background.png 把它用 /usr/share/ezgo/ezgo-artwork/default-dm/1920x1080.png 換掉。
    4. /usr/share/plasma/shells/org.kde.plasma.desktop/contents/layout.js 把它用 /usr/share/ezgo/ezgo-kde5/desktop.layout.js 覆蓋掉。注意不能用 symlink。
  5. 安裝 oxoffice 的指令:

    sudo apt-get install oxoffice5 oxoffice5-writer oxoffice5-calc oxoffice5-impress oxoffice5-math oxoffice5-base oxoffice5-zh-tw