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

为什么最近ports make clean不能清理掉编译时依赖的ports?

 
发表新文章   回复文章    FreeBSD China -> 技术交流
阅读上一个主题 :: 阅读下一个主题  
作者 留言
hunreal
道士


注册时间: 2002-06-30
文章: 951

文章发表于: Wed 2015-07-29 13:23:55    发表主题: 为什么最近ports make clean不能清理掉编译时依赖的ports? 引用并回复

为什么最近ports make clean不能清理掉编译时依赖的ports?
make clean只清理了当前的port, 真奇怪, 难道改了????

_________________
国内Ports Disfiles Mirror
/etc/make.conf:
电信
MASTER_SITE_OVERRIDE?=http://ports.hshh.org/${DIST_SUBDIR}/
返回页首
阅览会员资料 发送站内信件
anonymouscoward
道士


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

文章发表于: Wed 2015-07-29 14:37:51    发表主题: 引用并回复

我觉得是 r391295 从 bsd.port.mk 里拆出来重写了 Mk/Scripts/clean-depends-list.sh 引起的变化

目前的酱紫的
代码:
# make -C /usr/ports/security/ca_root_nss patch
# echo $(make -C /usr/ports/ftp/curl -V CLEAN-DEPENDS-LIST) limited | sh -x
+ /usr/bin/env 'dp_ALLDEPENDS=/usr/local/sbin/pkg:/usr/ports/ports-mgmt/pkg /usr/local/lib/libcrypto.so.8:/usr/ports/security/openssl /usr/local/bin/perl5.20.2:/usr/ports/lang/perl5.20 /usr/local/share/certs/ca-root-nss.crt:/usr/ports/security/ca_root_nss /usr/local/lib/libcrypto.so.8:/usr/ports/security/openssl' 'dp_PORTSDIR=/usr/ports' 'dp_MAKE=make' 'dp_PKGNAME=curl-7.43.0_2' 'dp_SCRIPTSDIR=/usr/ports/Mk/Scripts' /bin/sh /usr/ports/Mk/Scripts/clean-depends-list.sh limited


重写之前的版本是有列出存在 ${WRKSRC} 的依赖的
代码:
# make -C /usr/ports/security/ca_root_nss patch
# make -C /usr/ports/ftp/curl -V CLEAN-DEPENDS-LIMITED | sh -x
+ L='/usr/ports/ports-mgmt/pkg /usr/ports/security/openssl /usr/ports/lang/perl5.20 /usr/ports/security/ca_root_nss /usr/ports/security/openssl'
+ checked=''
+ [ -n '/usr/ports/ports-mgmt/pkg /usr/ports/security/openssl /usr/ports/lang/perl5.20 /usr/ports/security/ca_root_nss /usr/ports/security/openssl' ]
+ l=''
+ checked=' /usr/ports/ports-mgmt/pkg'
+ [ ! -d /usr/ports/ports-mgmt/pkg ]
+ cd /usr/ports/ports-mgmt/pkg
+ make -V WRKDIR -V _DEPEND_DIRS
+ children=/usr/ports/ports-mgmt/pkg/work
+ state=0
+ [ ! -d /usr/ports/ports-mgmt/pkg/work ]
+ break
+ checked=' /usr/ports/ports-mgmt/pkg /usr/ports/security/openssl'
+ [ ! -d /usr/ports/security/openssl ]
+ cd /usr/ports/security/openssl
+ make -V WRKDIR -V _DEPEND_DIRS
+ children='/usr/ports/security/openssl/work
/usr/ports/ports-mgmt/pkg /usr/ports/lang/perl5.20'
+ state=0
+ [ ! -d /usr/ports/security/openssl/work ]
+ break
+ checked=' /usr/ports/ports-mgmt/pkg /usr/ports/security/openssl /usr/ports/lang/perl5.20'
+ [ ! -d /usr/ports/lang/perl5.20 ]
+ cd /usr/ports/lang/perl5.20
+ make -V WRKDIR -V _DEPEND_DIRS
+ children='/usr/ports/lang/perl5.20/work
/usr/ports/ports-mgmt/pkg'
+ state=0
+ [ ! -d /usr/ports/lang/perl5.20/work ]
+ break
+ checked=' /usr/ports/ports-mgmt/pkg /usr/ports/security/openssl /usr/ports/lang/perl5.20 /usr/ports/security/ca_root_nss'
+ [ ! -d /usr/ports/security/ca_root_nss ]
+ cd /usr/ports/security/ca_root_nss
+ make -V WRKDIR -V _DEPEND_DIRS
+ children='/usr/ports/security/ca_root_nss/work
/usr/ports/ports-mgmt/pkg /usr/ports/lang/perl5.20'
+ state=0
+ [ ! -d /usr/ports/security/ca_root_nss/work ]
+ state=1
+ echo /usr/ports/security/ca_root_nss
/usr/ports/security/ca_root_nss
+ continue
+ continue
+ continue
+ L=''
+ [ -n '' ]

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


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

文章发表于: Wed 2015-07-29 15:41:41    发表主题: 引用并回复

然后我去读了旧版的 CLEAN-DEPENDS-(?:FULL|LIMITED)
发现 clean-depends-list.sh 少了一层循环, 就酱紫:
代码:
Index: clean-depends-list.sh
===================================================================
--- clean-depends-list.sh       (revision 393142)
+++ clean-depends-list.sh       (working copy)
@@ -47,4 +47,6 @@
 }
 
 checked=
-check_dep ${dp_ALLDEPENDS}
+for d in ${dp_ALLDEPENDS} ; do
+    check_dep ${dp_ALLDEPENDS}
+done

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


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

文章发表于: Wed 2015-07-29 17:13:09    发表主题: 引用并回复

anonymouscoward 写到:
然后我去读了旧版的 CLEAN-DEPENDS-(?:FULL|LIMITED)
发现 clean-depends-list.sh 少了一层循环, 就酱紫:
代码:
Index: clean-depends-list.sh
===================================================================
--- clean-depends-list.sh       (revision 393142)
+++ clean-depends-list.sh       (working copy)
@@ -47,4 +47,6 @@
 }
 
 checked=
-check_dep ${dp_ALLDEPENDS}
+for d in ${dp_ALLDEPENDS} ; do
+    check_dep ${dp_ALLDEPENDS}
+done


呃,这不是什么好办法,原来的那个 while [ -n $L ] 做得更好,
晚上有时间我再试试……

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


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

文章发表于: Wed 2015-07-29 19:17:51    发表主题: 引用并回复

这样应该就好了,但愿我没理解错什么……
代码:
Index: clean-depends-list.sh
===================================================================
--- clean-depends-list.sh       (revision 392821)
+++ clean-depends-list.sh       (working copy)
@@ -39,7 +39,7 @@
                if [ -d ${1} ]; then
                        echo ${d}
                elif [ "$arg" = "limited" ]; then
-                       break
+                       continue
                fi
                shift
                check_dep $@

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


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

文章发表于: Wed 2015-07-29 21:29:39    发表主题: 引用并回复

Shocked 楼上看起来很腻害,你有QQ嘛?跪求了

QQ:7777777

谢谢 Shocked Shocked Shocked

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


注册时间: 2005-10-07
文章: 1596
来自: 羊疙瘩头村

文章发表于: Thu 2015-07-30 01:18:17    发表主题: Re: 为什么最近ports make clean不能清理掉编译时依赖的ports? 引用并回复

#pkg autoremove 不管用啦?


hunreal 写到:
为什么最近ports make clean不能清理掉编译时依赖的ports?
make clean只清理了当前的port, 真奇怪, 难道改了????
返回页首
阅览会员资料 发送站内信件
anonymouscoward
道士


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

文章发表于: Thu 2015-07-30 10:46:54    发表主题: Re: 为什么最近ports make clean不能清理掉编译时依赖的ports? 引用并回复

IOU 写到:
#pkg autoremove 不管用啦?


pkg autoremove 指的是删除那些所有 rdep 中都被标记成 automatic 的包
就是 pkg register 时候 -d 的那些

至少也应该贴个 make clean-depends
因为 $$(${CLEAN-DEPENDS-LIST} full) 还是正常的

再或者其他一堆类似 workaround
find /usr/ports -maxdepth 3 -mindepth 3 -type d -name 'work' -print0
zsh -c 'print -N /usr/ports/*/*/work'
perl -e 'print join(qq|\0|, glob q|/usr/ports/*/*/work|)'
然后扔给 xargs -0 rm -fr

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


注册时间: 2015-01-17
文章: 34

文章发表于: Mon 2015-08-03 07:57:48    发表主题: 引用并回复

我也发现这个问题 不过懒的研究
直接rm -R /usr/ports/* /var/db/ports/*然后再
portsnap extract了 需时不长
有问题顶多rm -R /var/db/portsnap/*
返回页首
阅览会员资料 发送站内信件
syh
老妖


注册时间: 2010-05-02
文章: 1616
来自: 卡拉赞

文章发表于: Thu 2015-08-06 22:47:19    发表主题: 引用并回复

总之这个帖子告诉了 ports 用户们
代码:
setenv WRKDIRPREFIX "/tmp"
的重要性……

更进一步还可以像我一样:
代码:
Filesystem  Type     Size    Used   Avail Capacity  Mounted on
tmpfs       tmpfs     12G    349M     11G     3%    /tmp


james90404 写到:
我也发现这个问题 不过懒的研究
直接rm -R /usr/ports/* /var/db/ports/*然后再
portsnap extract了 需时不长
有问题顶多rm -R /var/db/portsnap/*

_________________
又要毕业了。应该是最后一次。
-------------
audio/mous
ports-mgmt/pkg-rmleaf
Buffer Hint: http://www.vim.org/scripts/script.php?script_id=5272
返回页首
阅览会员资料 发送站内信件
alphachi
老妖


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

文章发表于: Fri 2015-08-07 22:50:04    发表主题: 引用并回复

syh 写到:
总之这个帖子告诉了 ports 用户们
代码:
setenv WRKDIRPREFIX "/tmp"
的重要性……

更进一步还可以像我一样:
代码:
Filesystem  Type     Size    Used   Avail Capacity  Mounted on
tmpfs       tmpfs     12G    349M     11G     3%    /tmp


james90404 写到:
我也发现这个问题 不过懒的研究
直接rm -R /usr/ports/* /var/db/ports/*然后再
portsnap extract了 需时不长
有问题顶多rm -R /var/db/portsnap/*

我都是直接挂到/usr/obj/然后WRKDIRPREFIX也在这,方便同时跑ports和world。

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


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

文章发表于: Sat 2015-09-05 15:34:03    发表主题: 引用并回复

我的 ERL 只有 512M 内存,而且 OpenBSD octeon 只能认出 256M
swap 还是挂 NFS 的,编译个 clang 看 cmake 进度一个晚上也就编译了 4-5 个文件
我可以喊楼上的内存大户们求修么……

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


注册时间: 2007-08-21
文章: 1522

文章发表于: Sat 2015-09-05 17:41:04    发表主题: 引用并回复

ac 是在告诉你们追求性能的重要性,你们都站在高端,不肯低头看看,看吧出了问题首先想到的是 rm,还是多多研究下 bsd makefile, bsd shell 吧
返回页首
阅览会员资料 发送站内信件
anonymouscoward
道士


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

文章发表于: Sat 2015-09-05 21:09:31    发表主题: 引用并回复

http://cvsweb.openbsd.org/cgi-bin/cvsweb/src/sys/arch/octeon/octeon/machdep.c?rev=1.68&content-type=text/x-cvsweb-markup&only_with_tag=HEAD
octeon_memory_init() 里面 boot_info->dram_size 是 512
但是去掉 16384 PAGE_SIZE 以后 realmem_bytes 就不够第二次的 OCTEON_DRAM_FIRST_256_END 了
我弱爆了完全修不来,最后就只有 256M 的内存用…… T_T

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


注册时间: 2006-05-29
文章: 111

文章发表于: Tue 2015-11-10 04:18:44    发表主题: 引用并回复

james90404 写到:
我也发现这个问题 不过懒的研究
直接rm -R /usr/ports/* /var/db/ports/*然后再
portsnap extract了 需时不长
有问题顶多rm -R /var/db/portsnap/*


rolltech 写到:
ac 是在告诉你们追求性能的重要性,你们都站在高端,不肯低头看看,看吧出了问题首先想到的是 rm,还是多多研究下 bsd makefile, bsd shell 吧


rm 应该作为最后手段,我的 ports 轻易不会删的。编译配置文件里的参数好多,要是忘了也很恶心
当然折腾的时候该删就删吧,james90404 办法尚可直接做个脚本留着用了
返回页首
阅览会员资料 发送站内信件
从以前的文章开始显示:   
发表新文章   回复文章    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 网页设计版权 著作权和商标