在 Golang build 時,遇到動態連結庫遺失的問題

Hi! 最近在寫一些 Golang 的專案。在使用 Docker build image 時,發現了一些問題。 問題點 Docker image build 完後,執行 docker run 時出現以下錯誤 standard_init_linux.go:211: exec user process caused "no such file or directory" 原因 以我目前在寫的專案 URL-Shortener 為例。 在這個專案中,我用到了 go-sqlite3 這個 Library。 我們可以注意到 go-sqlite3 是以 C programming 來寫的。當我們在 build 時,需要使用到 GCC 及 CGO 來構建。所以我們也需要將 CGO_ENABLED 的變量設為 1,使其可以進行動態編譯。 執行指令就像這樣 $ CGO_ENABLED=1 CC=gcc go build -o /app/app main.go Mini Image 開兩個 Container 第一個 Container 執行 docker build 進行 build。 將 build 完成的 binary file 複製到第二個 Container。 在第二個 Container 中安裝相關套件,打包。...

April 7, 2022 · SteveYi

將任何 Tweet 置頂到自己的 Twitter 上

在今天,我滑 Twitter 時,發現了一篇有趣的推文… 於是我馬上就跟 @edisonlee55 分享這個趣事 很明顯的發現,這個人將別人的推文轉推過來,並置頂在自己的個人頁面 這看似很正常,但事實上「我們只能置頂自己發的推文」 當我們點擊我們 retweet 的推文,我們沒有發現「置頂推文」的選項 那麼… 當然要一點偏方了! 跟 @edisonlee55 進行快速的討論後,我們開始了實驗 首先,我們將瀏覽器的開發者工具打開 理論上,點擊右鍵就可以看見了! 接著,我們先進入 Network 的地方 在對我們想要進行 pin 的推文按個愛心 好那,我們看到了一個 HTTP POST 到 create.json 我們也看到了一個 “id”,這個 ID 則是 Tweet 的 ID。先將他複製下來,等等會用到 接著,我們還需要複製 Cookie, x-csrf-token, Bearer Token(Authorization) 等值,我們可以在 Header 上看到 注意!請記得要保存好,不要隨意洩露這些值 接著,我們打開 Postman,選擇 POST URL 則為https://twitter.com/i/api/1.1/account/pin_tweet.json?tweet_mode=extended&id=<id> 將 Header 與 Authorization 都設定好了後,我們點擊 Send 我在第一次測試的時候,因為我沒有先 retweet 推文,所以系統 return 這個給我 完成 retweet 後,我們再執行一次 POST。成功啦! 接著,我們打開網站,刷新頁面。 果然看到成功 pin 起來了

April 7, 2021 · SteveYi