- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我使用 NodeJS
和 grunt
+ grunt-debian-package
构建 .deb
文件,它可以工作适合创建部署文件 foo_v.v.v_all.deb
。
我还想在 debian 源包 (foo_v.v.v.tar.xz) 中分发简单且未丑化的源文件,但该文件相当空。
我需要做什么才能正确填充源文件?
我的环境:
当前目录:/home/dev/src/foo
我的 Grunt.js
的相关部分
debian_package: {
options: {
maintainer: {
name: "xxx",
email: "xxx"
},
prefix: "",
name: "foo",
postfix: "",
short_description: "xxx",
long_description: "xxx",
version: "<%=pkg.version%>",
preinst: {
src: "scripts/preinst",
},
postinst: {
src: "scripts/postinst",
},
postrm: {
src: "scripts/postrm",
},
prerm: {
src: "scripts/prerm",
},
dependencies: "xxx",
replaces: "xxx",
conflicts: "xxx"
},
deploy: {
files: [{
expand: true, // enable dynamic expansion
cwd: 'dist', // src matches are relative to this path
src: ['**'],
dest: '/usr/lib/foo'
}, {
src: "scripts/foo",
dest: "/etc/init.d/foo"
}, {
src: 'root-ca.conf',
dest: '/usr/lib/foo/root-ca.conf'
}]
}
}
// ----- snip -----
grunt.registerTask('package', ['debian_package']);
正确执行的命令:
grunt build
grunt package
检查文件结果:
ll tmp/
-rw-r--r-- 1 dev dev 22758744 Sep 16 00:10 foo_0.1.63_all.deb
-rw-r--r-- 1 dev dev 608 Sep 16 00:10 foo_0.1.63.dsc
-rw-r--r-- 1 dev dev 1400 Sep 16 00:10 foo_0.1.63_i386.changes
-rw-r--r-- 1 dev dev 76288 Sep 16 00:10 foo_0.1.63.tar.xz
tar -tJf tmp/foo_0.1.63.tar.xz
packaging/
packaging/debian/
packaging/debian/postinst
packaging/debian/compat
packaging/debian/postrm
packaging/debian/preinst
packaging/debian/dirs
packaging/debian/source/
packaging/debian/source/format
packaging/debian/changelog
packaging/debian/prerm
packaging/debian/copyright
packaging/debian/links
packaging/debian/control
packaging/debian/rules
packaging/Makefile
我希望将目录 /home/dev/src/foo/app
中的所有文件包含在文件 tmp/foo_0.1.63.tar.xz
中
为此我需要做什么?我应该更新 Makefile
吗?如果是:如何?
最佳答案
我终于明白了。我必须正确更新 Gruntfile.js。
首先,我在 config
部分定义了目标目录:
grunt.initConfig({
config: {
// [...]
src_pkg: 'node_modules/grunt-debian-package/packaging
},
然后我在 copy
任务中添加了一个源代码部分,将自己的源代码与 node_modules 分开:
copy: {
// [...]
src_pkg: {
files: [{
expand: true,
dot: true,
dest: '<%= config.src_pkg %>',
src: [
'**',
'!**/tmp/**',
'!**/.tmp/**',
'!**/dist/**',
'!**/.git/**',
'!**/node_modules/**', // node_modules will be copied separately
]
}]
},
src_pkg_modules: {
files: [{
expand: true,
cwd: 'node_modules',
dest: '<%= config.src_pkg %>/node_modules',
src: [
// list all node_modules you want to copy also here
]
}]
},
},
稍后注册任务(此处称为包
):
grunt.registerTask('package', [
'copy:src_pkg',
'copy:src_pkg_modules',
'debian_package']);
在命令行上通过调用启动打包
grunt package
...并在 ./tmp
中找到完整的 tarball(看看大小!):
ll tmp/
-rw-r--r-- 1 dev dev 22678070 Okt 6 22:09 foo_0.1.78_all.deb
-rw-r--r-- 1 dev dev 617 Okt 6 22:07 foo_0.1.78.dsc
-rw-r--r-- 1 dev dev 1408 Okt 6 22:09 foo_0.1.78_i386.changes
-rw-r--r-- 1 dev dev 38541304 Okt 6 22:07 foo_0.1.78.tar.xz
关于node.js - 如何使用 grunt-debian-package 填充源包?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32648866/
我正在尝试使用 JAXB 从 XSD 生成 java 类。 XSD 是我公司的官方 xsd,因此我无法仅为我的项目修改它们。在该网站上进行了数百次尝试和搜索后,我决定直接提出问题。 我的 XSD 中有
我已经了解了以下链接中的详细信息,但仍然存在何时使用哪个文件的问题?https://docs.npmjs.com/files/package-lock.json 最佳答案 包.json 包含项目的相关
当我在 centos 上运行命令 rpmbuild -bb mypackage.spec 时,出现错误 error: Package already exists: %package debuginf
my.packages 是 src 目录中的自定义原型(prototype)包。 Plone 实例中的数千个项目与其类型一起添加。我想将包重命名为 my.package。通过简单地卸载 my.pack
根据 javadoc 规范,我在相关包的根目录中放置了一个名为 package-info.html 的文档文件。但是,当我在该文件夹上运行 Doxygen 时,不会拾取该文件中的文档。我如何告诉 Do
我已经定义了如下的包: (defpackage :thehilariouspackageofamirteymuri (:nicknames ampack amir teymuri) (:use
我正在思考这个问题: > .packages() > (.packages()) [1] "stats" "graphics" "grDevices" "utils" "datase
我在内存中有一个 System.IO.Packaging.Package(它是一个 WordprocessingDocument)并且想将它流式传输到浏览器以保存它。 Word 文档已被基于 MVC
即使这是我不常发现的东西,在成员之前注释/* package*/的原因是什么? /* package */ final void attach(Context context) { atta
我正在开发我的应用程序,但在添加包以便导入它时,我总是收到此错误。 error: type 'Package.Dependency' has no member 'Package' 这是我的 Pack
install.packages("data.table") trying URL 'https://cran.rstudio.com/bin/macosx/el-capitan/contrib/3.
放置手动创建的插件的最佳位置是什么: a) C:\Users\{UserName}\AppData\Roaming\Sublime Text 3\Packages 或 b) C:\Users\{Use
这是一个有趣的 Perl 行为。 (至少对我来说 :) ) 我有两个包 PACKAGE1 和 PACKAGE2,它们导出具有相同名称的函数 Method1()。 由于将有如此多的包将导出相同的功能,使
package-archives (("marmalade" . "http://marmalade-repo.org/packages/") ("gnu" . "http://elpa.gnu.or
任何人都可以让我知道 package-lock.json 文件的确切用途吗? 尽管许多人提到它用于查看版本化依赖树。 寻找简单易行的解释。 提前致谢。 最佳答案 npm install使用此文件来确保
Python documentation说 Consider this code: import sound.effects.echo import sound.effects.surround fr
我在 ubuntu 上运行 VPS: Distributor ID: Ubuntu Description: Ubuntu 14.04.5 LTS Release: 14.04 C
我有这样一个结构 $ tree -h . ├── [1.0K] myproj │ ├── [ 0] index.py │ ├── [ 0] __init__.py │ └──
我正在尝试解压 System.IO.Packaging.Package我从网络服务器收到的。也就是说,我正在使用 System.IO.Packaging.Package.Open(Stream)方法并
关于 package.json 文件中的@types 依赖项,我有一个愚蠢的问题: 在下面的 URL 中解释了应该安装的类型作为运行时依赖 npm install --save @types/loda
我是一名优秀的程序员,十分优秀!