常见问题常见问题   搜索搜索   会员列表会员列表   团队团队   注册注册    个人资料个人资料   登录查看您的站内信件登录查看您的站内信件   登录登录 

使用pkg create时如何做多次递归

 
发表新文章   回复文章    FreeBSD China -> 初学指南
阅读上一个主题 :: 阅读下一个主题  
作者 留言
alphachi
老妖


注册时间: 2007-12-10
文章: 1263
来自: @tweetxa

文章发表于: Wed 2014-03-19 13:48:20    发表主题: 使用pkg create时如何做多次递归 引用并回复

当前pkg的依赖关系如下所示:
代码:
A
|-B
|-C-
   |-D
   |-E
|-F

如果需要打包A(包括所有依赖包),在以前的PKG系统里,只需要在使用pkg_create命令时添加参数-Rn就可以做到多次递归,即结果是打包了A到F共6个包。

在新的PKGNG系统里,pkg create命令并没有提供像-R这样的递归参数,所以想到使用类似pkg create -n `pkg info -dq A`这样的命令,即根据pkg info的查询结果打包,但这样无法做多次递归,也就是说只能打包A、B、C、F,打包不到D和E。

后来又想到可以根据ports-mgmt/pkg_tree的输出结果来打包,但发现不支持PKGNG。

目前只能使用一个比较傻的方法:使用命令pkg create -a全部打包以防止漏包。

不知各位同学有什么更好的方法?谢谢!

_________________
Paranoid in Sabbath ...
返回页首
阅览会员资料 发送站内信件
Gehaowu
老妖


注册时间: 2009-07-13
文章: 3189
来自: www

文章发表于: Wed 2014-03-19 14:09:55    发表主题: 引用并回复

Very Happy
代码:
cp -a /var/cache/All ~/
Cool Cool Cool 我都是pkg create -a的,如果有需要的话,不过为了 KMS , 为了 pkgng 我已经直接上 11-CURRENT 了

无需编译, pkg install 安之 Very Happy

_________________
https://www.daemon.xin from BITMOE.com
礼尚多有往来,意美人常在
Simplified Chinese Shell/csh,Traditional Chinese Shell/tcsh
返回页首
阅览会员资料 发送站内信件 发送电子邮件 浏览发表者的主页
alphachi
老妖


注册时间: 2007-12-10
文章: 1263
来自: @tweetxa

文章发表于: Wed 2014-03-19 14:24:03    发表主题: 引用并回复

你比我还懒……
不过CURRENT我已经耍不动了。

不知道为什么PKGNG的pkg create去掉了递归打包的功能?或者是移到了别的pkg命令里?

_________________
Paranoid in Sabbath ...
返回页首
阅览会员资料 发送站内信件
anonymouscoward
道士


注册时间: 2013-08-08
文章: 868

文章发表于: Wed 2014-03-19 16:21:11    发表主题: 引用并回复

poudriere 用户表示还没有自己 pkg create 过 =_=
代码:
% sh -c 'r(){ o=$1;case " $c " in *" $o "*)return;;esac;c="$c $o";for p in $(pkg query %do $o);do r $p;done };r $0; echo $c' x11/xorg | xargs pkg create

_________________
匿懦的邮件列表
订阅: bsd-talk-subscribe@anonymous744wjcx.onion
退订: bsd-talk-unsubscribe@anonymous744wjcx.onion
返回页首
阅览会员资料 发送站内信件
alphachi
老妖


注册时间: 2007-12-10
文章: 1263
来自: @tweetxa

文章发表于: Wed 2014-03-19 19:07:44    发表主题: 引用并回复

anonymouscoward 写到:
poudriere 用户表示还没有自己 pkg create 过 =_=
代码:
% sh -c 'r(){ o=$1;case " $c " in *" $o "*)return;;esac;c="$c $o";for p in $(pkg query %do $o);do r $p;done };r $0; echo $c' x11/xorg | xargs pkg create


老德你这是逼我也耍下poudriere么…… Embarassed
这个和tinderbox比有什么特点?是不是对PKGNG的支持更好?

_________________
Paranoid in Sabbath ...
返回页首
阅览会员资料 发送站内信件
anonymouscoward
道士


注册时间: 2013-08-08
文章: 868

文章发表于: Wed 2014-03-19 19:22:52    发表主题: 引用并回复

alphachi 写到:
老德你这是逼我也耍下poudriere么…… Embarassed
这个和tinderbox比有什么特点?是不是对PKGNG的支持更好?


虽然 shell 脚本什么的最讨厌了,但是 poudriere 看起来比 tinderbox 简单些……

花样刷依赖方法二
这样明显比不停 pkg query 快不少:
代码:
echo 'WITH RECURSIVE rdep(n) AS (VALUES("x11/xorg") UNION SELECT d.origin FROM deps AS d, rdep, packages AS p WHERE p.id=d.package_id AND p.origin=rdep.n ) SELECT DISTINCT origin FROM deps WHERE deps.origin IN rdep;' | sqlite3 /var/db/pkg/local.sqlite


ports-mgmt/pkg 目前自带的 SQLite 的版本还是 3.8.1,
使用 WITH 需要 3.8.3 所以还要装一下 databases/sqlite3
还有这样列出的依赖不包括 x11/xorg 本身,求帮忙改进一下下……

_________________
匿懦的邮件列表
订阅: bsd-talk-subscribe@anonymous744wjcx.onion
退订: bsd-talk-unsubscribe@anonymous744wjcx.onion
返回页首
阅览会员资料 发送站内信件
从以前的文章开始显示:   
发表新文章   回复文章    FreeBSD China -> 初学指南 论坛时间为 北京时间
1页/共1

 
转跳到:  
不能发布新主题
不能在这个论坛回复主题
不能在这个论坛编辑自己的文章
不能在这个论坛删除自己的文章
不能在这个论坛发表投票


Powered by phpBB 2023cc © 2003 Opensource Steps; © 2003-2009 The FreeBSD Simplified Chinese Project
Powered by phpBB © 2001, 2005 phpBB Group
Protected by Project Honey Pot and phpBB.cc
silvery-trainer
The FreeBSD China Project 网站: 中文计划网站 社区网站
The FreeBSD China Project 版权所有 (C) 1999 - 2003 网页设计版权 著作权和商标