标签:text 沙箱 custom 一个 upload ima common apt-get cos
最近尝试了国产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软件只是起到了一个自动生成配置文件的作用.
目前在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 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
在官网下载地址: 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图床不是官方提供的图床, 需要安装插件, 在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可以理解为国内的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
},
........
前面配置好的GUI已经可以独立当做图床来使用了, 因为这里还需要连接Typora, 所以需要再安装配置picgo-core
nodejs
官网的包管理工具npm
服务器在国外, cnpm
是淘宝做的npm
镜像, 国内使用cnpm
更快更方便
npm install -g cnpm --registry=https://registry.npm.taobao.org
cnpm install picgo -g
这一步相当于在GUI界面安装gitee插件
picgo install gitee-uploader
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, 文件-偏好设置-图像
设置
上传图片
Custom Command
node命令路径 picgo命令路径 upload
, 如: /usr/bin/node /usr/local/bin/picgo upload
, 可以通过which node
和which picgo
获取路径配置完之后点击验证图片上传选项
可以测试配置是否正确
正常情况可以看到验证成功, 也可以去看看Gitee仓库下是否存在两张图片文件, 这里需要注意的是如果同一张图片连续上传的话, 会报错说图片已存在, 需要删除Gitee仓库中的图片, 删除方式为右键点击文件, 选择删除.
在deepin20系统中使用PicGo+Gitee配置图床Typora的图床
标签:text 沙箱 custom 一个 upload ima common apt-get cos
原文地址:https://www.cnblogs.com/gcxblogs/p/13556626.html