2021年8月30日 星期一

esp-idf安裝失敗: This script was called from a virtual environment, can not al environment again

安裝esp-idf套件,執行到~/esp/esp-idf/install.sh發生錯誤

Installing Python environment and packages
ERROR: This script was called from a virtual environment, can not create a virtual environment again
 


直接google找,看到這篇有個做法,到我的環境下試試

1.執行下方指令,確認有完成
"python3 -m pip install virtualenv"

2.在執行install.sh失敗的目錄下,嘗試建立虛擬環境
"python3 -m virtualenv myenv"

3.刪除前述作業建立的環境,我的環境下
 "rm -rf ~/.espressif/python_env/idf4.0_py3.8_env/"

4.再次嘗試esp-idf的安裝script
"~/esp/esp-idf/install.sh

成功!

我的環境是 ubuntu20.04.1 LTS,Windows下步驟相同,請參考原文

現在沒興趣研究原因了,請自行評估風險

2020年12月21日 星期一

nextcloud client首次登入失敗(404 Not Found via login flow v2)

下載nextcloud client for Windows登入的nextcloud server

目前的login flow v2不是直接在client端儲存帳號、密碼

client會啟動瀏覽器開啟登入頁後從網頁授權給client

(因此每台電腦都會有獨立的授權,機制性的增強了資訊安全)


今天遇到的問題是client啟動的瀏覽器頁面竟然404 Not Found

查到這篇,確認是因為我關掉80只開放443的關係

針對這種該優化設定但暫時不想動的特殊案例

可以最小幅度修改搞定


vi /var/www/nextcloud/config/config.php

最下方);之前加入這行

'overwriteprotocol' => 'https',

(強制開啟網頁的URL用httpS協議)

systemctl restart apache2

回到client for Windows再次嘗試,搞定

謝謝!


2020年12月19日 星期六

(紀錄) nextcloud 16網頁無法登入,顯示 "維護模式"

本篇純為留下記錄供自己下次遇到問題時參考。不知前因後果也不知是否版本問題!

NextCloud 16跑在CentOS 7.8上,幾天沒使用今天突然發現

1. app存取錯誤回應503 

2. https網頁沒有登入頁,只顯示目前處於"維護模式"


進入shell執行occ試圖取消維護模式

sudo -u www-data php /var/www/nextcloud/occ maintenance:mode --off

突然下方跳出一堆訊息,其中提到我的nextcloud將升級至18版,開啟網頁操作


再次嘗試網頁,已經沒有"維護模式",而是出現一長串更新套件列表

接著系統就逐一更新,幾分鐘後系統就自行啟動,一切很幸運的完好如初



2020年12月18日 星期五

習慣用vi編輯設定檔

Ubuntu 20.4上用vi編輯檔案,

按了 i 之後方向鍵無法移動游標,變成輸入 A B C D 還按一次換一行

查了google才知道,vi / vim預設使用 h j k l 為方向鍵(這樣手不用離開主要輸入區域)

想"改用"方向鍵必須修改設定檔

內文中還有老鳥預測到下個問題就是 "backspace為什麼不會動?"

(按了 i 之後,backspace不會把前一個字吃掉)

(事實上它有,只是沒用空格把顯示出來的那個字蓋掉)

一樣可以用設定檔改成你習慣的樣子


所以

root@yourhost: ~# vi ~/.vimrc

set nocompatible

set backspace=2

:wq


不用重開,直接有效

遠端連線MariaDB失敗 ERROR 2013 (HY000): Lost connection to MySQL server at 'reading initial communication packet', system error: 2

Server A安裝MariaDB完成,試著從host B連看看

root@hostB:~# mysql -h 192.168.1.100

ERROR 2013 (HY000): Lost connection to MySQL server at 'reading initial communication packet', system error: 2

這甚麼意思?

上google查


可能性1: 連線被擋了,要在/etc/hosts.allow加入mysqld: 192.168.1.0/255.255.255.0: allow

各種格式都試過,完全沒效(後來確定相關功能在我的Ubuntu 20根本沒啟動)


可能性2: 連線有問題timeout掉了(某個中國老兄的文到處被複製,感覺是在瞎扯)

建議connect_timeout=5改成60 (可是我是第0秒就被斷線)

試過加在/etc/mysql/mariadb.conf.d/50-server.cnf裡,無效

試過在Server A進mysql內set global connect_timeout=60;,無效


我知道這不是防火牆的問題,但還是去確認了,真的不是

後來,我從Windows去telnet 192.168.1.100 3306

看到這個訊息Host '192.168.1.123' is not allowed to connect to this MariaDB server

確認連線其實有進去,只是被MariaDB server踢掉了

簡單查了一下,老外很多網站寫得清清楚楚

是帳號根本沒開外網的問題

(用telnet連線還沒試著登入就被擋了。帳號跟不接受連線的關聯其實我不明白)

馬上動手建帳號

MariaDB [(none)]> create user 'root'@'192.168.1.*' identified by 'thisispassword';

MariaDB [(none)]> grant all on *.* to 'root'@'192.168.1.*' with grant option;

MariaDB [(none)]> flush privileges;

再測一次,搞定!


好吧,太久沒摸MySQL/MariaDB或是我從來就不懂這東西

總之被回應的訊息內容誤導方向,浪費太多時間

希望這篇記錄能幫大家一點小忙

2019年1月1日 星期二

openmediavault 4.1.3首次開機失敗 /dev/sde1 does not exist. Dropping to a shell!

將openmediavault安裝至SSD完成,拔除USB碟重新開機

失敗!!!

現象1: 出現大量且重複的錯誤訊息
   mdadm: No arrays found in config file or automatically

現象2: 出現找不到開機分割區的訊息,進入BusyBox v1.22.1(initramfs)
   ALERT! /dev/sde1 does not exist. Dropping to a shell!

查google大致確認,第1項不是開機失敗的原因,先跳過


重點處裡第2個現象

forum上有人提供簡便解法,照做即可
https://forum.openmediavault.org/index.php/Thread/22879-Unable-to-boot-after-installation-Dropping-to-a-shell/?postID=175158#post175158

問題背景簡述: 
安裝至SSD當時,分割區是/dev/sde1,安裝程式也照著寫入Grub設定
開機碟移除後,分割區往前提變成/dev/sdd1,Grub找不到了...
(這問題感覺上是太扯了,但我沒有探究原因)

請注意:
以下/dev/sde1改成/dev/sdd1是我的實際環境
進行前請找出你電腦內正確磁碟代號
如果真的不會,可以試著把/dev/sdXy這個X字母往前一格,y不能變
例如上面現象2的訊息是ALERT! /dev/sdc1....
你就找 /dev/sdc1 然後改成 /dev/sdb1 (c之前是b這不會算錯吧...)


1.重新開機(按Ctrl+Alt+Del)
2.進入GRUB開機選單時,按ESC取消倒數
3.選取預設的開機項目,按e編輯開機參數
4.找到/dev/sde1,改成/dev/sdd1
5.按F10重新開機
6.這次openmediavault應該可成功開機(PC喇叭會發出聲音)
7.登入系統
8.vi /boot/grub/grub.cfg,將所有/dev/sde1改成/dev/sdd1
9.儲存重新開機

成功!

openmediavault 4.1.3出現大量錯誤訊息 rrdcached plugin: Failed to connect to RRDCacheD...

安裝完openmediavault 4.1.3 amd64版
發現/var/log/syslog不斷重複湧出錯誤訊息

collectd[3588]: rrdcached plugin: Failed to connect to RRDCacheD at unix:/var/run/rrdcached.sock: Unable to connect to rrdcached: No such file or directory (status=2)

試了forum.openmediavault.org討論區內大部分的建議無效

偶然發現下面這篇,照做終於搞定
原文: https://forum.openmediavault.org/index.php/Thread/21693-rrdcached-plugin-error/

解法提供者racoonsn發現,手動跑rrdcached可正常執行
/usr/bin/rrdcached -B -F -f 3600 -w 900 -b /var/lib/rrdcached/db/ -j /var/lib/rrdcached/journal/ -p /var/run/rrdcached.pid -l unix:/var/run/rrdcached.sock
(我對照過 /etc/default/rrdcached內容完全一樣)

懷疑是/etc/init.d/rrdcached內有甚麼地方寫錯了(本項無結論)

(略)
總之,實測成功的解法如下:

先確認 /sbin/ 內有兩個script
(make sure these two files exist)
   /sbin/start-stop-daemon
   /sbin/start-stop-daemon.REAL
其中,可正常執行的是第二個(.REAL),因此
(we want system to execute the one with extension .REAL so...)

step 1.把第一個備份起來(backup original script)
  mv /sbin/start-stop-daemon /sbin/start-stop-daemon.bak

step 2.把第二個更名(rename .REAL to the same name w/o extension)
  mv /sbin/start-stop-daemon.REAL /sbin/start-stop-daemon

step 3.重新開機(reboot)
  reboot

成功了!