使用 root 帳號安裝 Homebrew
安裝不了是正常的,因為安全性的緣故,既然你執意要安裝的話,就先執行: touch /.dockerenv 然後再下一次安裝指令 (到官網複製最新指令較安全) /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)" 接下來就可以順利安裝,然後… 注意安全!
安裝不了是正常的,因為安全性的緣故,既然你執意要安裝的話,就先執行: touch /.dockerenv 然後再下一次安裝指令 (到官網複製最新指令較安全) /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)" 接下來就可以順利安裝,然後… 注意安全!
在 Kubernetes 使用 Synology NAS 的 NFS 作 Persistent storage 可以參考這一篇: https://benyoung.blog/persistent-storage-class-in-kubernetes-backed-by-synology-nfs/ 實際測試時,在 Deploy WordPress 的測試 mysql 容器一直出現 Back-off restarting failed container 錯誤 kubectl describe pod wordpress-mysql-79c87bbdf9-w8h22 查詢錯誤的時候發現 Entrypoint Script 無法變更目錄權限,導致容器一直無法正常啟動 kubectl logs wordpress-mysql-79c87bbdf9-w8h22 2022-06-03 14:11:14+00:00 [Note] [Entrypoint]: Entrypoint script for MySQL Server 5.6.51-1debian9 started. chown: changing ownership of ‘/var/lib/mysql/’: Operation not permitted 查詢網路文章,需要對 NFS 設定作一些修改 https://blog.csdn.net/m0_46090675/article/details/122276216 開啟 Synology NAS 的 SSH 登入,修改 /etc/exports 從: /volume1/k8s 192.168.9.0/255.255.255.0(rw,async,no_wdelay,crossmnt,insecure,all_squash,insecure_locks,sec=sys,anonuid=1024,anongid=100) 修改為: /volume1/k8s 192.168.9.0/255.255.255.0(rw,async,no_wdelay,crossmnt,insecure,no_root_squash,insecure_locks,sec=sys,anonuid=1024,anongid=100) 主要是修改 no_root_squash ...
從 11.6.5 太久沒有升級,直升 12.7.7 之後卡住無法進入,更改升級路徑後完成升級: 11.6.5 -> 12.0.4 -> 12.6.4 -> 12.10.6 (sameersbn/gitlab 適用) 這一篇做個紀錄,還好安裝時就是選用 PostgreSQL,如果是用 MySQL 在 12.1.0 要先做一次 DB Migration 才能升級 > 12.1.0。 https://github.com/sameersbn/docker-gitlab/blob/master/Changelog.md Tested path: 11.5.1 -> 11.11.3 [OK] -> 12.0.4 [OK] -> 12.6.4 [OK] -> 12.10.6 [OK] -> 13.0.6 > [OK] PostgreSQL 11 upgrade 9.6-2 -> :12-20200524 [OK] (Add more memory >= 4GB) -> 13.2.1 [OK] — 2022/04/30 更新 -> 13.2.2 [OK] 更改設定檔 PostgreSQL 參數 – DB_EXTENSION=pg_trgm,btree_gist -> 13.3.0 [OK] -> 13.7.0 [OK] 更新後如有需要,在後台設定關閉 Open registration 功能避免一直提示 -> 13.9.1 [OK] -> 13.12.4 [OK] -> 14.0.6 [OK] -> 14.1.1-1 [OK] -> 14.9.3 [OK] ...
專案需求在一台電腦上安裝多台 IC 讀卡機,用以節省 PC 的安裝使用,於是有了這個需求,以下是在 Code Project 上看到的一篇文章,實際寫個小程式測試確認可以判斷不同的 HID USB ID 來進行後續的應用。 Mark: https://www.codeproject.com/Articles/17123/Using-Raw-Input-from-C-to-handle-multiple-keyboard
更新電腦後只要播放存放在 NAS 的影片檔就會出現長時間的驗證,實在是很擾人,有的小檔案不會出現有的會,還沒有發現它的原則是什麼,不過這屬於 MacOS 的安全預設值,可以用以下指令變更設定,執行後需要重啟電腦套用。 defaults write com.apple.LaunchServices LSQuarantine -bool NO
專案是在 .NET 底下執行,當然最好還是編譯成 Any CPU,這時指定編譯為 32 Bit 的解法選項就不夠完美。在找解決方案的時候看了 Stackoverflow 的這一篇: http://stackoverflow.com/questions/7264383/options-for-using-system-data-sqlite-in-a-32bit-and-64bit-c-sharp-world 參考了眾多解決方案都不太符合,後來想到的解法是使用 NSIS 做安裝檔案,預設複製 32 Bit 版本,安裝時當判斷作業系統是 64 Bit 時將 64 Bit 版本複製到應用程式執行路徑,反之則不複製,保持使用 32 Bit 版本。 Section "Main Program" MAINSEC SetOutPath "$INSTDIR" SetOverwrite ifnewer ; Those files are included with the installer File /nonfatal /a /r ..\bin\Debug\en\ File /nonfatal /a /r ..\bin\Debug\zh-Hans\ File /nonfatal /a /r ..\bin\Debug\zh-Hant\ File ..\bin\Debug\App.exe File ..\bin\Debug\App.exe.config File ..\bin\Debug\System.Data.SQLite.dll File ..\bin\Debug\System.Data.SQLite.xml File /nonfatal /a /r ..\bin\Debug\Tools\ ;Store installation folder WriteRegStr HKCU "Software\FETAG\MyApp" "" $INSTDIR ;Create shortcuts CreateDirectory "$SMPROGRAMS\MyApp" CreateShortCut "$SMPROGRAMS\MyApp\App.lnk" "$INSTDIR\App.exe" CreateShortCut "$SMPROGRAMS\MyApp\UnInstall.lnk" "$INSTDIR\Uninstall.exe" CreateShortCut "$DESKTOP\MyApp.lnk" "$INSTDIR\App.exe" ;Create uninstaller WriteUninstaller "$INSTDIR\Uninstall.exe" ; x32 or x64 DLL !include "x64.nsh" ${If} ${RunningX64} ; MessageBox MB_OK|MB_ICONSTOP '64 Bit' ${Else} ; MessageBox MB_OK|MB_ICONSTOP '32 Bit' CopyFiles "$INSTDIR\Tools\System.Data.SQLite.dll" "$INSTDIR\System.Data.SQLite.dll" ${EndIf} SectionEnd 另外一個 AssemblyResolver 的方法看起來還是太麻煩了。 ...
獲得 Shell 後可以對容器內容做一些修改及監控,或是進一步了解作者在 Image 中包了哪些東西,Docker 容器服務若已經啟動,在不影響服務正常運行的情況下想要獲得 Shell 的話,最方便的應該就是容器開發模式中使用 nsenter 的方式。網路上眾多安裝 nsenter 方式以這個命令最簡便,不需額外套件與編譯直接安裝: 安裝方法 docker run -v /usr/local/bin:/target jpetazzo/nsenter 其 Github 的項目地址在:https://github.com/jpetazzo/nsenter 有興趣的朋友可以多多關注這個項目。 使用方式 先取得容器的 PID PID=$(docker inspect --format {{.State.Pid}} <container_name_or_ID>) 根據 PID 獲得 Shell $ sudo nsenter --target $PID --mount --uts --ipc --net --pid 簡化為 Shell Script <enter-cnt.sh>: #!/bin/bash echo "Looking PID for $1: " PID=$(docker inspect --format {{.State.Pid}} $1) echo $PID sudo nsenter --target $PID --mount --uts --ipc --net --pid ss_2016-02-28_21-08-56 網路上也有網友提供一個較複雜的 Shell 腳本 (轉自 http://www.hjue.me/post/docker-nsenter) 需要的朋友也可以參考: ...
建立好一個容器後把它轉成服務,並設定在每次開機時自動啟動。在 CentOS 上我們使用的是 Systemd 而不是之前 Ubuntu 的 Upstart,Systemd 的約定中設定文件應放置在 /etc/systemd/system 或是 /usr/lib/systemd/system 下,由於某些系統預設安全性修改 /etc 下的檔案權限問題比較多,為了各系統間相容建議都放在 /usr/lib/systemd/system。 以下以 Dockerize 的 OpenVPN 容器設定為服務為例,容器確定已經可以正常運行之後,在上述目錄下建立一個 docker-openvpn.service 檔案: sudo vi /usr/lib/systemd/system/docker-openvpn.service 內容為: [Unit] Description=OpenVPN Docker Service Author=Coolfire After=docker.service [Service] TimeoutSec=300 Restart=always ExecStart=/usr/bin/docker start openvpn [Install] WantedBy=multi-user.target 然後測試是不是可以跑起來: sudo systemctl start docker-openvpn docker ps 如果已經跑起來了,那麼把它設定開機自啟動: sudo systemctl enable docker-openvpn 如果需要確認可以重開機看看服務是否不需人工干預自動跑起來了。 CoreOS 可參考: http://chuansong.me/n/1067253
* 刪除電腦中不用的小紙片 */ 我們每個人都有過重裝系統的經歷,在安裝好系統之後,如何才能快速重裝原來那些自己所鍾愛的軟件?nixCraft 提供了一個有用的技巧。它的原理是在系統完好無損的時候,就做好已安裝軟件的備份工作。然後,在重裝系統後就可以利用先前備份的文檔來執行還原操作了。下面是相關的實施步驟(以 Debian 為例): 執行備份操作: dpkg --get-selections > installed-software.log 這將當前系統中已安裝的軟件保存到 installed-software.log 中。 在還原時使用 dpkg --set-selections < installed-software.log 導入軟件列表,再利用 dselect 工具安裝軟件。 上述方法同樣適用於 Ubuntu。另外,原文也介紹了基於 RPM 包管理器的發行版如何執行的步驟,有興趣的可以直接去看。 sudo dpkg --set-selections /home/package.selections && apt-get dselect-upgrade
硬碟與 SSD 各分割一個扇區 diskutil list diskutil cs create Fusion disk0 disk1 diskutil cs list (Copy UUID) diskutil coreStorage createVolume [UUID] jhfs+ “Macintosh Fusion” 100% 另外,Disk Sensei 這個工具可以協助在 EI Capitan 中 Enable Trim Support,據 這篇 說明是不用再 Disabling kext signing 因此更加安全。我在 Fusion Drive 環境測試過沒有問題,免購買試用版本可操作 Trim Enable,推薦。 新增解除 Fusion Drive 的方法,硬碟中資料會完全遺失請先備份: diskutil cs list (Logic Volume Group 後面那一串就是 UUID) diskutil coreStorage delete [UUID]