LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 1712|回复: 26

paludis资源分享

[复制链接]
发表于 2009-6-30 10:19:34 | 显示全部楼层 |阅读模式
前言:写这个帖子是因为目前网络上关于paludis的中文资料很少(毕竟母语看起来方便很多,特别是对我等英文水平难登大雅之堂的人:-)),主要意图是希望 使用这个包管理器的gentooer/exherboer能够分享出他们在用的各种技巧

搜索了一下论坛(其实也用google搜索了一下,发现来来去去也就那么几篇),亞利艾爾写了Paludis 试用笔记,看了半天楞是没看懂。。。

  1. 更新修改了 USE 标志的包:这个我最想骂街了!什么选项!Portage 是怎么做的大家都知道:emerge -1ND xxx。知道 Paludis 怎么做吗?

  2. paludis --dl-reinstall when-use-change -i xxx

  3. 而且我谦虚的说,据我目前所知道的没有简称……没有见过这样烦的手写命令
复制代码
是否可以自己写个shell脚本用case进行绑定,诚如6楼zhllg版主所说
  1. 嫌麻烦就弄个脚本
复制代码


反倒是Blahster在4楼的帖子给了我一些认识

system包依赖portage,额,或许现在变了,刚试验了一下,package.provided中添加了portage之后glibc之流并没有所谓的依赖portage之说
PS:记忆中以前的也没有


安装方法
由于paludis是非官方,所以如果采用的是"x86"分支安装需要添加"~x86" keyword才能正常安装
  1. echo "sys-apps/paludis ~x86" >> /etc/portage/package.keywords
  2. emerge -av sys-apps/paludis
复制代码

USE上亞利艾爾提到
  1. 建议打开 ruby 的 USE 标志,里面有对 Paludis 而言非常有用甚至十分重要的工具
复制代码
(具体是什么暂时空着,现在网速非常卡,外网上不来没法查)
Gentoo wiki上的一些[url=http://en.gentoo-wiki.com/wiki/Categoryaludis]相关资源[/url]


/etc/paludis
在paludis官方网上有提供转换portage配置脚本 portage2paludis.bash,可直接进行转换(提供脚本附件)

environment.conf
指定world文件所在位置,其world文件作用同portage中的world文件(/var/lib/portage/world)

keywords.conf
作用等同于/etc/make.conf中的ACCEPT_KEYWORDS和/etc/portage/package.keywords

use.conf
作用等同于/etc/make.conf中的LINGUAS INPUT_DEVICES VIDEO_CARDS USE和/etc/portage/package.use

licenses.conf
定义licenses,一般为 */* * 即可

mirrors.conf
作用等同于/etc/make.conf中的GENTOO_MIRRORS

bashrc
作用等同于/etc/make.config中的CHOST MAKEOPTS LDFLAGS CXXFLAGS CFLAGS

package_mask.conf / package_unmask.conf
作用等同于/etc/portage/package.mask and /etc/portage/package.unmask.

repositories/gentoo.conf
Gentoo必须文件其一,格式如下:
  1. location = /usr/portage
  2. sync = rsync://rsync.europe.gentoo.org/gentoo-portage/
  3. profiles = ${location}/profiles/default-linux/x86/2007.1
  4. format = ebuild
  5. names_cache = XXXX
复制代码


repositories/installed.conf
Gentoo必须文件其二,格式如下:
  1. location = /var/db/pkg/
  2. format = vdb
  3. names_cache = XXXX
  4. provides_cache = XXXX
复制代码

其中,profiles指向与/etc/make.profile指向相同
names_cache加速分析将要安装包(不知这样理解是否正确,官方称其对用户有巨大用处),在使用portage或者pkgcore安装软件/更新portage后,需要paludis --regenerate-installed-cache && paludis --regenerate-installable-cache,禁止用"/var/empty"替代"XXXX"
provides_cache,加速分析已安装包,禁止用"/var/empty"
PS:确保这里指向的目录文件有相应权限,否则用paludis安装软件时会报错


呵呵,刚接触paludis,从某种角度上说比portage方便些,如可进行gnome-base/*局部定义
同时也相当不方便,比方-a选项这么个基本功能都没有。。。
 楼主| 发表于 2009-6-30 10:43:59 | 显示全部楼层
一些常用命令对比,来着Gentoo Wiki


更新system
  1. # emerge -av system
  2. # paludis -ip system
复制代码


更新world
  1. # emerge -avuDN world
  2. # paludis -ip world --dl-reinstall if-use-changed
复制代码


安装软件包
  1. # emerge -av vim-core
  2. # paludis -ip vim-core
复制代码


移除软件包
  1. # emerge -C vim-core
  2. # paludis -up vim-core
复制代码



Blahster曾提及
  1. 6d. 没有--update选项,只能使用--install -1,忘记-1后每次升级软件paludis -i xxx 后,world里面会多一条软件记录...真是挺恼人的.没有--ask选项........
  2. 卸载软件会有残留文件
复制代码

等待Blahster来确认是否属实,好像这里他/她用挺久了
回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-6-30 11:04:11 | 显示全部楼层

一些不同于Portage之处

查看Paludis官方相关文档

1.没有--tree
替代方案:--show-reasons提供更多信息


2.没有FEATURES

2.1 ccache
paludis/bashrc中加入
  1. PATH="/usr/lib/ccache/bin/:${PATH}"
  2. CCACHE_DIR="/var/tmp/ccache"
  3. SANDBOX_WRITE="${SANDBOX_WRITE}:${CCACHE_DIR}"
复制代码

tips:
  1. echo "CCACHE_DIR="/var/tmp/ccache" ccache -M 2G" >> ${HOME}/.bashrc
复制代码

确保对${CCACHE_DIR}有相应权限

2.2 collision-protect
Paludis官方并不推荐使用

2.3 distcc
paludis/bashrc中加入
  1. DISTCC_DIR="/var/tmp/paludis/.distcc"
  2. DISTCC_HOSTS="localhost another_host"
  3. PATH="/usr/lib/distcc/bin:${PATH}"
  4. SANDBOX_WRITE="${SANDBOX_WRITE}:${DISTCC_DIR}"
复制代码


2.4 package.provided
使用importare替代
eg:
  1. #cat /etc/paludis/repositories/installed-unpackaged.conf
  2. format=installed-unpackaged
  3. location=/var/db/paludis/repositories/installed-unpackaged

  4. #make -pv /var/db/paludis/repositories/installed-unpackaged
  5. #import --location /var/empty sys-apps/portage 2.1.6.13
复制代码

----------------未完,待续
回复 支持 反对

使用道具 举报

发表于 2009-6-30 19:07:28 | 显示全部楼层
有这还不如等portage大版本更新呢。现在要用C语言写libportage了,速度不会慢的。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-6-30 19:41:51 | 显示全部楼层
不是吧。。。。

看了一下,貌似离"可用"还有相当长远一段时间

还好还没动手重构系统

不过paludis撇开开发者不说还是一不错的包管理工具
比如importare(很不错的技术) 比如hook(虽然还是犯迷糊阶段)
回复 支持 反对

使用道具 举报

发表于 2009-6-30 19:48:54 | 显示全部楼层
paludis可以使用hooks,进行一些扩展。上面说的collision-protect有现成的可以使用。

http://git.pioto.org/gitweb/palu ... c0c25b9f973;hb=HEAD

每次升级都 --dl-reinstall if-use-changed 也不一定很好。 软件包添加/删除/更改一个USE名称,就要重装,对一个基本打造完成的gentoo系统,只是浪费而已。
有空大家可以讨论讨论。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-6-30 20:12:32 | 显示全部楼层
  1. 软件包添加/删除/更改一个USE名称,就要重装
复制代码

指整个系统重装?这样的话不是变得很那个了。。。
变相需要对每个软件包进行精确控制
回复 支持 反对

使用道具 举报

发表于 2009-6-30 20:36:07 | 显示全部楼层
Post by nonplus;2002427
  1. 软件包添加/删除/更改一个USE名称,就要重装
复制代码

指整个系统重装?这样的话不是变得很那个了。。。
变相需要对每个软件包进行精确控制


这个选项基本和emerge --newuse 是一样的。我的意思,每次升级的使用都使用 -N 的话,会有一些包重复编译其实并没有带来什么变化。因为这些包,可能只是添加/删除了一些你用不到USE flag。
回复 支持 反对

使用道具 举报

发表于 2009-6-30 20:47:22 | 显示全部楼层
不过你用gentoo,劝你还是用portage吧。
回复 支持 反对

使用道具 举报

发表于 2009-7-1 14:41:35 | 显示全部楼层
现在Gentoo Java Herd已经宣布 Generation-1 JVM已经是不推荐了(deprecated),而java-config-1是直接依赖sys-apps/portage的。现在Portage中已经没有包直接依赖sys-apps/portage了,而是virtual/portage。这样一来,现在要是全部使用 Paludis是相当可行的。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表