在mac分发app中,根据 MDM官方文档 这个地方的指令描述及 MDM Protocol Extensions 模块中的 macOS Extensions ,可以发现iOS设备和OSX设备在mdm上的区别,个人整理了一下:
对于iOS设备来说,一个简毁设备就是一个唯一标示,所有的指令及描述文件,针对的都是这台设备,基本上可以理解为一台设备就是一个用户,单一用户===单一设备,因为我们扰咐敬的设备不同于OSX,可缓慎以创建多个用户,这是前提
单一设备 != 单一用户,可能多个设备存在多个用户,所以我们在mac安装checkin的描述文件时, 设备checkin上报token的时候,会上报对此,分别对应设备的token和用户的token,对于我们的一些指令,用户token是不支持的,一旦下发,会显示指令受限制,错误如下提示:
在分发app的指令中,iOS系统正常使用,但是对于OSX,OSX文档描述的方法 在实践中未成功,其中文档中提到了将App格式转化为pkg格式,并且签名取md5值的过程中,官方文档推荐的命令为:
但是我们安装文档的要求,处理失败,然后进行了查询其他命令,并且安装了苹果自身的OS Server使用对比文件,最终发现的成功的方式及使用的命令为:
使用命令 productbuild 而不是命令 pkgbuild ,对比2个命令处理完的pkg包,其中 productbuild 的安装包,
使用pkgbuild命令解压结果:
三个文件,分别是
1.Bom文件
2.PackageInfo文件
3.Payload文件
具体作用还没分分析
具体区别再分析一下,尝试对立面的pkg再次解压,解压失败(Could not open package for expansion:/ / /***.pkg),然后就可以安装到设备上
这两天给 Kreogist µ 打 Arch Linux 包,照着 wiki 跟着搞,同时在肥猫和 Wicast C 及暴君还有 jimmy66 等强力大腿及小伙伴的支持下,几番折腾终于打好了,也算是入了个门。
搞完过来发现也算简单,总体来说其实就是一个 PKGBUILD 文件的编写。就着给 µ 打的这个包写个简单指南。在写的时候实在太不知道怎么写的地方还可以直接参考一下其他软件包的 PKGBUILD 是怎么写的我才不会说呢。
编写 PKGBUILD
在最开头,复制一份原型:败斗源 /usr/share/pacman/PKGBUILD.proto(同目录下也有其他特别类型的原型),之后就从这个文件开始编写啦。
先读完文件开头那段注释,然后删掉它~
Maintainer
最开头一行注释是维护者的信息,按照它提供的格式填写上有效的信息即可。
pkgname
软件包的名字。只能用 小写字母、数字和@ . _ + - 这些字符,且不允许用.或者-作开头。
另外不要和 AUR 甚至是官方仓库里面的软件包重名了(´・ω・`)
pkgver
软件包的版本,就是你打包的那个软件的版本。可以使用数字和小数点,以及其它字符。进一步的规则可参考:VCS package guidelines - ArchWiki
pkgrel
软件包发行号,一般设为 1,如果你因为某些原因给同版本号的软件进行反复打包,那么每次打包的时候 pkgrel 就应该在原基础上递增一个数字,而在打包新的版本的时候,应该重新设为 1。
epoch
强行干涉包的新旧关系,拥有更大的 epoch 值的包会被认做更新的包(此时无视版本号),可以用在如版本号风格改变等需要的时候。默认值为 0,取值为正整数。一般不会用到。
pkgdesc
软件包的描述信息,最好一句话,且不包含软件的名字。
arch
表示支持的 Arch Linux 的架构,比如 i686、x86_64,如果包与平台无关的话就填 any。
url
与软件包相关的链接,一般是项目首页什么的。
license
软件发布协议,如果是常见的 GPL 的话可以对照下面填写:
(L)GPL - (L)GPLv2 及更新版本。
(L)GPL2 - 仅 (L)GPL2
(L)GPL3 - (L)GPL3 及更新版本
depends
这是非常重要的一项,需要正确填写上软件的依赖。
对于直接发布可执行程序的话,可以通过 ldd 来看程序连接了哪些库文件,结合搜索判断出具体依赖是什么软件包。你可以用谷歌在 上搜索具体库的文件名,一般都能够找到对应的软件包。
如果你已经用 makepkg 打出了 .tar.xz 的包,也可以用 Namcap 来检查依赖是否存在问题,它会提供一些有用的信息帮助修正依赖。对于他的输出含义可以直接参考 ArchWiki。
多测试多测试,确保依赖真的没问题。
source
构建软件包需要的文件。可以是一个本地文件,也可以是一个远程文件。 makepkg 会在构建包的时候自动下载填写的远程文件,并且会自动解包压缩文件。
md5sums
对应的 source 里面文件的 md5 校验码。
package()
在构架包的时候执行的函数。你需要把安装软件对应的 *** 作写在这里。函数会在一个销族 fakeroot 环境下执行,对应的 root 目录就是 $pkgdir,比如你有一个可执行文件名为 $pkgname 要安装到 /usr/bin 察态下面,对应的命令就可以类似这么写:
install -m=775 $pkgname "${pkgdir}/usr/bin"-m 选项表示目标文件的权限,和 chmod 参数同理。
常用目录
目录
用途
/etc 系统关键配置文件,如果件有多个,应该创建合适的子目录来存放
/usr/bin 二进制文件
/usr/lib 库
/usr/include 头文件
/usr/lib/{pkg} 模块,插件等
/usr/share/doc/{pkg} 应用程序文档
/usr/share/info GNU Info 系统文件
/usr/share/man 手册
/usr/share/{pkg} 程序数据
/var/lib/{pkg} 应用持久数据
/etc/{pkg} {pkg}的配置文件
/opt/{pkg} 大的独立程序,例如 Java
/usr/share/applications/ Desktop Entry (.desktop) 文件
/usr/share/icons/ 图标,存在该目录下对应子目录位置
不该碰的目录:
/dev
/home
/srv
/media
/mnt
/proc
/root
/selinux
/sys
/tmp
/var/tmp
构建/调试包
在 PKGBUILD 所在目录下执行 makepkg 可以构建出对应的软件包,推荐用 namcap 检测一下构建出来的包有没有更显著的问题。
然后你可以用 pacman -U 命令安装它,看看会不会发生什么奇怪的事情,以及软件是否正常等。
当然还有可能因为 PKGBUILD 没写好,直接就报错不干了,这个时候需要顺着错误信息去修正 PKGBUILD。
发布到 AUR
在 PKGBUILD 所在目录执行 makepkg --source,会生成 .src.tar.gz 源码包,这就是需要上传到 AUR 的东西,注意不要把任何二进制文件加入源码包。
在 AUR (Arch User Repository) 注册(登入)帐号。进入 Submit 页面,选择好软件包对应的分类,然后添加源码包上传即可。
即使你是要更新一个包,也只需要直接在 Submit 页面上传,包的信息 AUR 会自己处理。
如果觉得每次上传太麻烦,你可以尝试一下 aurupload 来简化发布。
翻译状态:本文(或部分内容)是 Nano 的翻译,最近一次同步的日期是 2018-8-28,如果英文版本有所更改,则您可以帮助同步翻译更改的内容。
您可以在ArchWiki 的对应页面找到本文翻译的原始编辑记录和贡献者列表。
GNU nano (或 nano)是一个基于控制台的文本编辑器,旨在提供一个简单的界面和直观的命令选项。 nano 支持的功能包括语法高亮、DOS/Mac 文件格式孝高转换、拼写检查和UTF-8编码。 用空缓冲区打开的nano通常占用少于4MB的驻留内存。
安装
编辑
Nano 对应的软件包是 nano包。
配置
编辑
Nano的外观、感觉和功能通常由命令行参数或者配置文件~/.config/nano/nanorc控制。
程序安装时会同时安装一个示例配置文件,位于/etc/nanorc。 要自定义配置,首先复制一份配置文件到~/.config/nano/nanorc:
$ cp /etc/nanorc ~/.config/nano/nanorc
通过设置~/.config/nano/nanorc文件中的参数控制nano的设置。
提示:nanorc(5)列出nano的全部可用配置选项。
注意: 命令行参数会优先覆盖配置文件~/.config/nano/nanorc中的参数。
语法高亮
编辑
Nano包含预定义的语法高亮规则,位于文件/usr/share/nano/*.nanorc。 添加以下配置到~/.config/nano/nanorc或者/etc/nanorc使语法高亮生效:
include "/usr/share/nano/*.nanorc"
可以在AUR(nano-syntax-highlighting-gitAUR)找到默认语法高亮规则的增强扩展。 参考[1],用于Forth突出显示。
PKGBUILD
编辑
将 https://paste.xinu.at/4ss/ (类似 svntogit-server)保存到 /etc/nano/pkgbuild.nanorc,引用它:
include "/etc/nano/pkgbuild.nanorc"
还可以选择安装 nano-syntax-highlighting-gitAUR
挂起
编辑
Nano与大部分交互程序不同,默认情况下关闭挂起功能。 取消/etc/nanorc中set suspend行的注释以启用挂起功能。 允许用按键Ctrl+z使nano挂起到后台。
文本换行
编辑
Nano与大部分文本编辑器不巧敬尺同,默认文本自动换行。 要关闭自动换行,在~/.config/nano/nanorc添加以下参数:
set nowrap
使用
编辑
快捷键提示可以在nano中看到。 Nano中可以用Ctrl+g打开在线帮助,nano Command Manual可以查看详细说明和帮助。
特殊按键
编辑
Nano在屏幕底部两行显示功能快捷键。
表示方式如下:
^表示按住键盘上的Ctrl
M-表示按住键盘上的Meta(通常是Alt)或Esc
提示:Feature Toggles列出nano全部可用快捷键。
提示和技巧
编辑
用nano替换vi
编辑
要用nano替换vi作为控制台默认文本编辑器,例如用于visudo,设置VISUAL和EDITOR 环境变量,示例:
export VISUAL=nano
export EDITOR=nano
问题解决
编辑
快捷键绑定冲突
编辑
部分窗口管理器会稿困与nano的快捷键冲突,例如Alt+Enter。 删除或重新绑定快捷键例如Super(用mutter包、muffin包和marco包修改dconf包),然后重新启动窗口管理器。
参考
编辑
nano (text editor) - Wikipedia入口
GNU nano Homepage - 官方网页
GNU nano Bugs 报告bug
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)