1. 程式人生 > 實用技巧 >在deepin20系統中使用PicGo+Gitee配置圖床Typora的圖床

在deepin20系統中使用PicGo+Gitee配置圖床Typora的圖床

在deepin20系統中使用PicGo+Gitee配置圖床Typora的圖床

最近嘗試了國產linux作業系統deepin20, 我之前一直用的Windows, 在使用deepin時幾乎沒有不習慣的感覺, 操作起來非常簡單. 介面也確實非常漂亮, 有一種集MacOS和Windows於一身的感覺. 而且不管是內建的系統基礎應用還是應用商店中的常用應用都做得很好, 基本可以滿足日常辦公需求. 各方面都讓我有種眼前一亮的感覺. 希望deepin的生態發展能夠越來越好.

前言

之前我在Windows上可以正常使用Typora+PicGo+Gitee, 安裝配置方法比較簡單, 沒有在linux上麻煩, 可以自行百度或者參考:

https://zhuanlan.zhihu.com/p/102594554 ,後來嘗試過在Ubuntu20上安裝這一套, 但是還是在Typora設定Picgo時出現了問題, 因為在linux上安裝的PicGo是.appimage可執行檔案, 所以Typora配置上傳服務時不好選擇Picgo的安裝路徑, 不像在Windows中可以直接選擇picgo.exe. 後來發現了這篇部落格: https://zhuanlan.zhihu.com/p/102594554 可以解決這個問題, 於是又想在deepin上嘗試一下, 沒想到安裝成功了. 所以總結分享一下我的安裝過程, 希望能給他人有所幫助.

這裡使用了PicGo的GUI視覺化圖形軟體PicGo-2.3.0-beta.3.AppImage

picgo-core(picgo的命令列工具)一起配合使用, 因為typora配置時選擇不了GUI軟體, 但是可以選擇picgo-core命令列工具, 又因為picgo-core操作或者外掛設定起來沒有GUI圖形介面方便, 所以可以先用GUI軟體配置好外掛, 然後將其預設生成的配置檔案複製到picgo-core的配置檔案中, 配置完後如果不想保留GUI軟體可以刪掉, 因為typora上傳時實際上還是使用的picgo-core, GUI軟體只是起到了一個自動生成配置檔案的作用.

安裝最新版本的Typora(0.9.93)

目前在deepin的應用商店中也能搜尋到typora, 不過其版本是0.9.86

, 我之前也是用的這個版本, 但是後面配置好Picgo之後, 發現一個問題: 只能在新建未儲存的typora檔案中貼上圖片才會自動上傳到圖床伺服器上, 一旦儲存了md檔案或者開啟已儲存的md檔案, 再貼上圖片就不會自動上傳到圖床了. 具體原因我也沒有找到, 只能嘗試安裝官網最新版的typora試試看, 結果果然最新版本就沒有這個問題了, 目前最新版本是0.9.93

Typora官網給的linux安裝方法是:

# or run:
# sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys BA300B7755AFCFAE
wget -qO - https://typora.io/linux/public-key.asc | sudo apt-key add -
# add Typora's repository
sudo add-apt-repository 'deb https://typora.io/linux ./'
sudo apt-get update
# install typora
sudo apt-get install typora
  • 運行了wget -qO - https://typora.io/linux/public-key.asc | sudo apt-key add -命令後

  • 再執行sudo add-apt-repository 'deb https://typora.io/linux ./'新增Typora源時報錯說sudo: add-apt-repository:找不到命令

  • 於是百度到add-apt-repository的安裝命令sudo apt-get install software-properties-common, 執行該安裝命令

  • 再執行sudo add-apt-repository 'deb https://typora.io/linux ./'時又報錯說Error: could not find a distribution template for Deepin/n/a, 後面查詢到可以換一種方式新增源, echo -e "\ndeb https://typora.io/linux ./" | sudo tee -a /etc/apt/sources.list, 其實也就是手動給原始檔/etc/apt/sources.list新增一句話:deb https://typora.io/linux ./

  • 然後執行sudo apt-get updatesudo apt-get install typora都成功運行了

總結來說我的安裝方法是:

wget -qO - https://typora.io/linux/public-key.asc | sudo apt-key add -
# add Typora's repository
echo -e "\ndeb https://typora.io/linux ./" | sudo tee -a /etc/apt/sources.list
sudo apt-get update
# install typora
sudo apt-get install typora

安裝PigGo

在官網下載地址: https://github.com/Molunerfinn/PicGo/releases ,下載PicGo-2.3.0-beta.3.AppImage檔案, 雙擊開啟系統會提示新增執行許可權(或者手動執行命令新增chmod a+x PicGo-2.3.0-beta.3.AppImage), 遺憾的是點選確定後並沒有什麼反應, 於是命令列進入安裝目錄, 手動執行該檔案./PicGo-2.3.0-beta.3.AppImage, 發現執行失敗:

[8898:0420/011642.495795:FATAL:setuid_sandbox_host.cc(157)] The SUID sandbox helper binary was 
found, but is not configured correctly. Rather than run without sandboxing I'm aborting now. You
 need to make sure that /tmp/.mount_PicGo-s7aX7M/chrome-sandbox is owned by root and has 
mode 4755.

經百度查詢發現解決方法: https://github.com/Molunerfinn/PicGo/issues/467 , 這裡選擇了第四種解決方法, 如果沒有userns.conf檔案就自己建立一個

  1. 啟用使用者名稱稱空間: sudo sysctl kernel.unprivileged_userns_clone=1,但每次開機都要執行該命令。
  2. 給報錯資訊給出的檔案授權:sudo chown root <path_to_marktext_dir>/chrome-sandbox && sudo chmod 4755 <path_to_marktext_dir>/chrome-sandbox,但不適用於picgo,因為會自動刪除。
  3. 執行的時候加上免沙箱命令:--no-sandbox
  4. 開機時自啟動使用者名稱稱空間:echo 'kernel.unprivileged_userns_clone=1' > /etc/sysctl.d/userns.conf

重啟後即可以正常開啟Picgo

配置gitee圖床獲取配置檔案

安裝gitee外掛

這裡還是選擇了gitee圖床, 因為免費並且很快, 當然也可以選擇其他圖床, 但是gitee圖床不是官方提供的圖床, 需要安裝外掛, 在GUI介面搜尋gitee並安裝gitee-uploader 1.1.2外掛

安裝時會提示你需要安裝nodejsnpm, 於是直接執行命令安裝

sudo apt-get install nodejs
sudo apt-get install npm

我使用的源是deepin預設的源, 沒有使用阿里雲源(因為之前在deepin中使用阿里雲源時, 安裝mysql驅動pip install mysqlclient時需要安裝libpython3-dev, 但是阿里雲源裡面找不到這個包), 預設源的nodejs版本為v10.19.0, npm的版本為5.8.0, 安裝npm後會警告npm does not support Node.js v10.19.0, 這裡我沒有管, 還是繼續用的這個nodejs版本, 後面也可以正常執行:

alex@alex:~$ npm
npm WARN npm npm does not support Node.js v10.19.0
npm WARN npm You should probably upgrade to a newer version of node as we
npm WARN npm can't make any promises that npm will work with this version.
npm WARN npm Supported releases of Node.js are the latest release of 4, 6, 7, 8, 9.
npm WARN npm You can find the latest version at https://nodejs.org/

nodejsnpm安裝完成後, 再重啟電腦, 繼續開啟picgo的圖形化介面, 安裝gitee-uploader 1.1.2外掛就沒有問題了

建立gitee倉庫和token

gitee可以理解為國內的github, 可以免費託管程式碼或者檔案, 上傳下載速度比Github要快

  • 註冊登入gitee, 新建一個倉庫, 我定義的倉庫名為Picture-bed, 設定為公開, 勾選使用readme初始化倉庫, 選擇只建立master分支

  • 獲取token授權: 點選右上角頭像下的設定, 選擇私人令牌, 點選生成新令牌, 把projects這一項勾上,其他的不用勾,然後提交, 然後會顯示一段token資訊, 注意儲存好這個資訊, 它只會顯示一次, 後面無法再讀取了

配置圖床資訊

在Picgo的GUI介面找到gitee的圖床設定, 填寫相關資訊, repo格式為gitee使用者名稱/倉庫名, 分支master, token為上面建立的token, path可以為空或者自定義, 這裡是放在/img資料夾下, 該資料夾會自動在倉庫建立

點選確定設為預設圖床即可. 在上傳區上傳一張圖片測試配置是否成功

配置完成後點選PicGo設定再點選開啟配置檔案, 檢視配置檔案, 路徑為: ~/.config/picgo/data.json, 我的配置為:

{
  "uploaded": [],
  "picBed": {
    "current": "gitee",
    "uploader": "gitee",
    "smms": {
      "token": ""
    },
    "gitee": {
      "branch": "master",
      "customPath": "",
      "customUrl": "",
      "path": "/img",
      "repo": "Alex-GCX/Picture-bed",
      "token": "***********************"
    },
    "list": [
      {
        "name": "SM.MS圖床",
        "type": "smms",
        "visible": false
      },
     ........

安裝配置picgo-core

前面配置好的GUI已經可以獨立當做圖床來使用了, 因為這裡還需要連線Typora, 所以需要再安裝配置picgo-core

安裝cnpm

nodejs官網的包管理工具npm伺服器在國外, cnpm是淘寶做的npm映象, 國內使用cnpm更快更方便

npm install -g cnpm --registry=https://registry.npm.taobao.org

安裝pic-core

cnpm install picgo -g

安裝gitee外掛picgo-plugin-gitee-uploader

這一步相當於在GUI介面安裝gitee外掛

picgo install gitee-uploader

配置picgo-core

picgo-core的配置檔案為: ~/.picgo/config.json, 將GUI的配置檔案~/.config/picgo/data.json中的picBed配置項複製過來就好了, 最終配置如下

{
  "picBed": {
    "current": "gitee",
    "uploader": "gitee",
    "smms": {
      "token": ""
    },
    "gitee": {
      "branch": "master",
      "customPath": "",
      "customUrl": "",
      "path": "/img",
      "repo": "Alex-GCX/Picture-bed",
      "token": "******************"
    }
  },
  "picgoPlugins": {
    "picgo-plugin-gitee-uploader": true
  }
}

配置typora整合picgo-core

開啟Typora, 檔案-偏好設定-影象設定

  • 插入圖片時: 上傳圖片
  • 上傳服務設定: Custom Command
  • 自定義命令: node命令路徑 picgo命令路徑 upload, 如: /usr/bin/node /usr/local/bin/picgo upload, 可以通過which nodewhich picgo 獲取路徑

配置完之後點選驗證圖片上傳選項可以測試配置是否正確

正常情況可以看到驗證成功, 也可以去看看Gitee倉庫下是否存在兩張圖片檔案, 這裡需要注意的是如果同一張圖片連續上傳的話, 會報錯說圖片已存在, 需要刪除Gitee倉庫中的圖片, 刪除方式為右鍵點選檔案, 選擇刪除.