小弟 按照這篇文章: http://blog.gtwang.org/iot/raspberry-pi-nginx-rtmp-server-live-streaming/
,一步一步執行,但是執行到:
cd nginx
./configure --prefix=/var/www --sbin-path=/usr/sbin/nginx --conf-path=/etc/nginx/nginx.conf --pid-path=/var/run/nginx.pid --error-log-path=/var/log/nginx/error.log --http-log-path=/var/log/nginx/access.log --with-http_ssl_module --without-http_proxy_module --add-module=/home/pi/nginx_src/nginx-rtmp-module
系統卻回應 bash: ./configure : No such file or directory
我實際進入 圖形化界面後,發現: nginx 底下沒有 configure 這個目錄或檔案,但有一個 conf 目錄,和一個 auto 目錄下有一個 叫 configure 的檔案(它是個 script 檔)。
但我把 指令改成:
./conf –prefix=/var/www –sbin-path=/usr/sbin/nginx –confpath=/
etc/nginx/nginx.conf –pid-path=/var/run/nginx.pid –error-logpath=/
var/log/nginx/error.log –http-logpath=/
var/log/nginx/access.log –with-http_ssl_module –withouthttp_
proxy_module –add-module=/home/pi/nginx_src/nginx-rtmp-module
,系統卻回應 bash: ./conf: “Is a directory",
請問,要如何才能解決這個問題呢???
呃....您知道每一個 Linux 指令的意義嗎?
除錯的前提是, 您必須到每一個指令的動作/結果, 甚至過程也要稍微了解一下, 才有可能找到出錯的地方.
從上面的描述看來, 您似乎並不太明白 ./configure 是在做甚麼? 而且根據您後來的發現和處置, 也可以推論您並不瞭解 Linux 的 Executable file 和 directory 差別. 在這樣的狀況下, 即使大家給了你甚麼建議或是操作指令, 您也只能照著做, 如果又出錯了, 還是沒辦法自己解決.
網路太多的教學文章, 其實害人不淺. 對於有經驗的人, 或許教學文章可以讓他快速了解一個陌生的系統, 很快就上手; 但對於經驗不足的人, 教學文章裡面並沒有提醒他們, 應該先具備甚麼樣的技能或基礎, 導致很多人是在沒有基礎知識的狀況下, 跟著教學文章去做, 結果是完全的不求甚解, 出問題也沒有能力自己解決.
我不是說不能照著教學文章去做, 但是如果能在做的過程中, 把相關的基礎知識都一併補齊, 這樣的過程才有價值.
例如: 我最近在研究軟體式的 IP PBX, 已經有現成的套件如 Asterisk, Elastix, 3CX 等可以使用, 也有相關的教學文章. 但是如果我只是照著這些文章去安裝, 裝起來了只不過看到一堆漂亮的介面, 頂多只能做到跟教學文章相同的功能, 而且萬一話務不通, 用這種安裝過程, 我完全沒有能力查修.
所以我開始回頭去看 VoIP 的相關技術, 了解甚麼是 Gateway? 甚麼是 SIP Proxy? 甚麼是 Enum? 甚麼是 Caller ID? DID?...把這個領域裡面, 每一個名詞定義都先弄清楚, 整個的系統架構也先弄清楚, 再來處理軟體安裝的問題.
這當然很花時間, 過程也很痛苦, 因為要花很長的時間讀一堆陌生的東西, 如果我照教學文章去做, 幾小時就可以裝好一套. 但那樣裝起來, 我能做甚麼? 我只能「玩玩」罷了, 「玩玩」的意思是說, 頂多動動滑鼠, 下幾個指令, 看著螢幕有各種參數變化, 跑來跑去, 但能玩出甚麼東西?
如果我想做 IP PBX 的串接呢?
如果我想做 SIP Proxy 呢?
如果我想做....?
這些東西都需要紮實的理論基礎才能規劃和設計, 並不是動動滑鼠就可以拼湊出來的.
台灣工程師和國外工程師最大的差別, 就是台灣工程師很喜歡動手做, 喜歡享受出現畫面的快感; 你看看有多少人, 拿到一個硬體設備, 就先拆箱插電, 到處按按鈕, 進入管理介面到處按, 卻連操作手冊都沒有打開來過?
但是國外工程師通常先看文件, 即便是個簡單的設備, 也要先看看 Quick installation guide 才開始動手. 所以他們可以避開一些不為人知的地雷, 知道甚麼事情應該要先做, 而這些正是台灣工程師在學習新技術時, 會卡很久的地方.
這個問題其實來自於學校的教育, 因為學校只教寫程式, 卻沒教系統管理. 寫程式講究持續更新, 持續修改, 從以前的 Waterfall 到現在的 Scrum, DevOp, 越來越講究「邊做邊改」的習慣, 但是這樣的習慣卻不太適合用在系統管理上.
系統管理通常面臨的問題是, Maintenance Windows 很短, 時間很少, 你必須在極短的時間內做出正確的動作, 而且在跨國的系統中通常只有一次作業的機會, 所以每一個步驟都必須非常精準, 你要必須能預測到每一個動作的後果是甚麼? 甚至預測到會出甚麼狀況? 出問題該如何補救? 不能像寫程式那樣, 邊做還邊改, 看了結果再來想下一步, 那樣系統早就停擺了.
你是 Coder/Programmer? 還是 System Admin/IT Pro? 角色要先定義清楚.
安裝一套 NGINX: 這是 System admin 的工作.
在 NGINX 環境開發一個 Web Application: 這是 Coder 的工作
不同的工作角色, 要用不同的方法去完成. 如果拿 Coder 的方法來做 System admin 的事情, 會使得建置出來的系統非常不穩定, 經常需要人為介入維修, 而且無法預料將來會出甚麼亂子.
喔....我是寫計畫書寫太累了, 進來換個話題舒壓一下; 講完了還要繼續回去寫計畫 (手邊是一個跨台灣和東南亞兩地, 總共有上百台 VM 要做 DR Site 的計畫, 但 RPO 只能小於5分鐘, 我得把未來所有可能發生的狀況都考慮進去) ...就請其他網友幫幫樓主吧.....