最近在学习ubuntu core。所以我做了一个简单的 snap 使用 snap 在控制台中打印消息。真的很简单,打印一条消息,或者input-param + message。
我的问题是,我不知道为什么 snap 在开发模式下工作,但不能在候选频道中工作。
这是我的示例代码。
snapcraft.yaml
name: saybye
version: "1.0.0"
summary: Command-line tool for saying byebye to someone
description: |
saybye
saybye name
grade: stable
confinement: strict
apps:
saybye:
command: saybye
parts:
saybye:
plugin: nodejs
source: .
saybye.js
#! /usr/bin/env node
let name = null;
if (process && process.argv && Array.isArray(process.argv) && process.argv.length > 2) {
name = process.argv[2];
}
let message = null;
let greeting = "Bye Bye!";
if (!name)
message = greeting;
else
message = name + ' ' + greeting;
console.log(message);
它是 npm config package.json
{
"name": "saybye",
"version": "1.0.0",
"description": "",
"main": "saybye.js",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1"
},
"bin": {
"saybye": "saybye.js"
},
"author": "",
"license": "ISC",
"bugs": {
"url": "https://github.com/hubertwang/saybye/issues"
},
"homepage": "https://github.com/hubertwang/saybye#readme"
}
如您所见,这里的代码非常简单。基本上它们来自一些第一次教程。如果您在开发模式下安装 snap,它可以工作。
但是,如果您安装我上传到商店的候选人,它将无法正常工作。
sudo snap install saybye --channel=candidate
我不确定问题是否是由某些界面设置引起的,也许我没有要求我需要打印消息的权限?