DNS Resolution Problem at start on Apple M2

最近把 Spring Boot 升級到 3.2.1 後、莫名的遇到了以下的警告:

Unable to load io.netty.resolver.dns.macos.MacOSDnsServerAddressStreamProvider, fallback to system defaults. This may result in incorrect DNS resolutions on MacOS. Check whether you have a dependency on 'io.netty:netty-resolver-dns-native-macos'. Use DEBUG level to see the full stack: java.lang.UnsatisfiedLinkError: failed to load the required native library

經查:應該是因為在使用M晶片的 macOS 上缺了系統需要的 Library。

在 pom.xml 加入以下依賴即可解決:

<!-- https://mvnrepository.com/artifact/io.netty/netty-all -->
        <dependency>
            <groupId>io.netty</groupId>
            <artifactId>netty-all</artifactId>
        </dependency>

[Docker]The requested image’s platform (linux/arm64/v8) does not match the detected host platform (linux/amd64) and no specific platform was requested

在新的 M2 pro 上依循著之前的方法製作了 Docker Containter ,卻在 Synology NAS 上的 Docker 上要復原時發生了以下的錯誤訊息:

The requested image's platform (linux/arm64/v8) does not match the detected host platform (linux/amd64) and no specific platform was requested.

經查詢後得知:在 M1/M2 中 build 出來的 Containter 是只能在它自己的環境中(linux/arm64/v8)執行;所以當導到其他的架構時、因為 amd64v8 和原本的 amd64 for x86 指令集不同時就會出現錯誤;雖然 Dcoker 構建出來的容器是可以在大多數操作系統上運作的、但⋯⋯需要特別注意的是:Docker 容器的架構類型仍需和 Host 的操作系統相對應。例:Ubuntu 是 x86 的、那麼 Docker 也必需是 x86 的。

最簡單的解決方法即是在 MBP M2 中 build 的時候使用 buildx 並加入 –platform linux/amd64 即可、如下:

docker buildx build --platform=linux/amd64 -t testwebyserp .

[Update] How to install MSSQL Server on Mac M2 using Docker

近期將電腦升級為 Mac M2 ,之前文章中所使用 2019 & 2017 的版本因為 ARM 架構而無法再繼續使用;經搜尋找到 Using SQL Server on M1 based Mac with Docker 並實作成功、紀錄如下:

一、Docker 已支援 ARM 、故可以直接由官網下載安裝(我使用 brew 的方式)。

brew install --cask docker

二、在 hub.codkcer.com 中找到 Azure SQL Edge 的 docker image 、並將其 pull 下來。

docker pull mcr.microsoft.com/azure-sql-edge

http://idea0816.synology.me/wordpress/wp-content/uploads/2023/05/截圖-2023-05-03-上午9.09.43.png

三、運行(特別注意密碼需為強密碼才不會有問題)。
20250220:修正以下運行指令

docker run --cap-add SYS_PTRACE -e 'ACCEPT_EULA=1' -e 'MSSQL_SA_PASSWORD=Admin@123' -e 'MSSQL_PID=Developer' -e 'MSSQL_USER=SA' -p 1433:1433 --name azuresqledge -d mcr.microsoft.com/azure-sql-edge

http://idea0816.synology.me/wordpress/wp-content/uploads/2023/05/截圖-2023-05-03-上午9.16.52.png

四、如 HOW TO RESTORE SQL SERVER ON MAC USING DOCKER 提到的在 Azure Data Studio 連線資料庫。

http://idea0816.synology.me/wordpress/wp-content/uploads/2023/05/截圖-2023-05-03-上午9.20.53.png

Error Message:在新版的 Azure Data Studio 要 Restore 資料庫時可能會跳出「You must enable preview features in order to use restore」 的錯誤訊息。

http://idea0816.synology.me/wordpress/wp-content/uploads/2023/05/截圖-2023-05-03-上午10.26.02.png

要去 Setting 中將其打開、這樣在 Restore 時就不會出現錯誤了。

http://idea0816.synology.me/wordpress/wp-content/uploads/2023/05/截圖-2023-05-03-上午10.26.31.png

http://idea0816.synology.me/wordpress/wp-content/uploads/2023/05/截圖-2023-05-03-上午10.27.14.png

五、將備份資料庫拷貝進 Docker。

sudo docker cp database.bak Azuresqledge:/var/opt/mssql/backup

六、依之前方式 Restore Database 即可完成。

HOW TO RESTORE SQL SERVER ON MAC USING DOCKER

續前篇 HOW TO INSTALL MSSQL SERVER ON MAC USING DOCKER 在安裝完資料庫後;接下來當然就是先還原之前的資料庫、以利後續開發。

sudo docker cp 檔案名 容器名:/var/opt/mssql/backup

在這裡特別強調(因為我犯了這個蠢、還重新安裝了 Container) : 在這裡是輸入本機密碼、不是資料庫的連線密碼

等待一段時間後、將 Docker Container 重新運行(Restart)。再進入 Azure Data Studio 中去連線資料庫。

Selected path 的部份我是用打字的補入後面的 backup 文件夾、這部份應該是因為我之前沒有先建立資料夾就拷貝檔案進去、所以在檔案瀏覽器中是看不到的(待確認)。

How to install MSSQL Server on Mac using Docker

因為開發的原因、所以需要在 Mac 上安裝 SQL Server 。

Docker 官網

下載並安裝 Docker 。

前往 Dockerhub 找到需要的 Image 檔案:

Dockerhub-SQL Server

  • 目前在官網上只看到 2019 & 2017 的版本、所以我選擇了 2017 的版本。

DockerSQLserver

打開終端機(Terminal)、輸入以下指令:

docker pull mcr.microsoft.com/mssql/server:2017-latest

DockerPull

Pull 完後、在剛剛的網頁往下拉一點、會看到執行方法:

Howtouseimage

在終端機在執行以下命令:

docker run -e "ACCEPT_EULA=Y" -e "SA_PASSWORD=yourStrong(!)Password" -p 1433:1433 -d mcr.microsoft.com/mssql/server:2019-latest
  • 要特別注意的是 Copy 下來的命令檔、需先修改密碼(要求強密碼、否則執行會有問題);另外、因為剛 Pull 的是 2017 、所以版本號也必需要改。我在此行命令中另外加上了 –name 讓執行後的名稱變成我想要的。

Setup

以上完成後、開啟 Docker App 、並 Run 剛剛安裝的 Image 就可以啟動了:

RunDocker

取代 SQLServer Mangament 的 Azure Data Studio:

Azure Data Studio

操作介面和 Visual Studio Code 幾乎一模一樣;經測試、雖然連接 SQL 2008 會跳出警告版本不相容,但目前使用起來沒什麼大問題。

AzureDataStudio

How to install Node.js and npm on macOS with Homebrew

先檢查在 Mac 中是否有安裝了 Homebrew。

brew -v

如果沒有看到版本號、代表還沒安裝;先進到 Homebrew 官網、並在終端機中輸入以下內容:

/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"

確認 Homebrew 安裝完成後、輸入以下:

brew update
brew install node

安裝完成後、檢查是否安裝成功:

node -v

npm -v 

完成。

[iTunes] 0xc000007b 應用程式無法正確啟動

因為同事的 iPhone 跟著他一起去游泳了,此時才發覺備份的重要性;所以來求助如何使用 Windows7 做 iTunes 的備份,在安裝後卻顯示如標題的錯誤;經拜過 Google 大神後解決掉問題,因是在同事的電腦上操作、故就不上圖了。

  • 先檢查硬碟是否有錯誤:
    CHKDSK C: /R /F

  • 移除 Visual C++ 可轉發套件

  • 重新安裝 Visual C++ 可轉發套件

建議都裝英文版、且每個都安裝;記得有分 32bit & 64bit

  1. Microsoft Visual C++ 2008 Service Pack 1 Redistributable Package MFC Security Update

  2. Microsoft Visual C++ 2010 SP1 Redistributable Package (x86)

  3. Visual C++ Redistributable for Visual Studio 2012 Update 4

  4. Visual C++ Redistributable Packages for Visual Studio 2013

  5. Microsoft Visual C++ 2015 Redistributable Update 3

Evernote 轉移到 Mac 備忘錄

Evernote / 印象筆記,從開始利用電腦做筆記後就一直使用這個筆記軟體;說實在好用、習慣也上手;但在 2016 年時官網突然宣佈免費版僅能同時登入 2 個裝置;算了算手上除了公司用桌機、筆電、平板、手機最少就有 4 個裝置了,還未算入跨各種平台的裝置;一開始還是耐著性子在各裝置間登出登入的使用著,後來實在是受不了了;剛好蘋果的備忘錄更新了功能,加上慢慢的我也逐漸購入了蘋果的”全家餐”, Evernote 就越來越少登入。

今天突然想到、把 Evernote 中的所有資料都導入備忘錄中,也算是畫下一個句點吧。

閱讀全文〈Evernote 轉移到 Mac 備忘錄〉