在deepin20系統中使用PicGo+Gitee配置圖床Typora的圖床
在deepin20系統中使用PicGo+Gitee配置圖床Typora的圖床
最近嘗試了國產linux作業系統deepin20
, 我之前一直用的Windows, 在使用deepin時幾乎沒有不習慣的感覺, 操作起來非常簡單. 介面也確實非常漂亮, 有一種集MacOS和Windows於一身的感覺. 而且不管是內建的系統基礎應用還是應用商店中的常用應用都做得很好, 基本可以滿足日常辦公需求. 各方面都讓我有種眼前一亮的感覺. 希望deepin的生態發展能夠越來越好.
前言
之前我在Windows上可以正常使用Typora+PicGo+Gitee
, 安裝配置方法比較簡單, 沒有在linux上麻煩, 可以自行百度或者參考: .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
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 update
和sudo 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
檔案就自己建立一個
- 啟用使用者名稱稱空間:
sudo sysctl kernel.unprivileged_userns_clone=1
,但每次開機都要執行該命令。 - 給報錯資訊給出的檔案授權:
sudo chown root <path_to_marktext_dir>/chrome-sandbox && sudo chmod 4755 <path_to_marktext_dir>/chrome-sandbox
,但不適用於picgo,因為會自動刪除。 - 執行的時候加上免沙箱命令:
--no-sandbox
- 開機時自啟動使用者名稱稱空間:
echo 'kernel.unprivileged_userns_clone=1' > /etc/sysctl.d/userns.conf
重啟後即可以正常開啟Picgo
配置gitee圖床獲取配置檔案
安裝gitee外掛
這裡還是選擇了gitee圖床, 因為免費並且很快, 當然也可以選擇其他圖床, 但是gitee圖床不是官方提供的圖床, 需要安裝外掛, 在GUI介面搜尋gitee
並安裝gitee-uploader 1.1.2
外掛
安裝時會提示你需要安裝nodejs
和npm
, 於是直接執行命令安裝
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/
nodejs
和npm
安裝完成後, 再重啟電腦, 繼續開啟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 node
和which picgo
獲取路徑
配置完之後點選驗證圖片上傳選項
可以測試配置是否正確
正常情況可以看到驗證成功, 也可以去看看Gitee倉庫下是否存在兩張圖片檔案, 這裡需要注意的是如果同一張圖片連續上傳的話, 會報錯說圖片已存在, 需要刪除Gitee倉庫中的圖片, 刪除方式為右鍵點選檔案, 選擇刪除.