[ Prev ] [ Index ] [ Next ]

软件包管理

Created 星期六 20 三月 2010
安装列表 清理

synaptic
apt-get (install)

软件源


cn99

http://ubuntu.cn99.com/debian/

网易

http://mirrors.163.com/debian/

搜狐

http://mirrors.sohu.com/debian/

配置文件

/etc/apt/sources.list

本地软件源

deb file:///data/deb/ lenny main contrib
安装多媒体考虑
http://www.debian-multimedia.org/


apt安装deb包缓存

目录
/var/cache/apt/archives

制作DEB包

参看http://www.debian.org/doc/manuals/maint-guide/index.zh-cn.html#contents
1 创建一个目录如deb,将源码包.../foo-1.0.tar.gz解压 tar xfz .../foo-0.1.tar.gz, 进入foo-0.1/
用./configure --prefix=/usr ,make 构建,查看程序。
2 执行 dh_make -e xun@xdserve.cn -f .../foo-0.1
3 修改foo-0.1/debian中的文件
4 dpkg-buildpackage -rfakeroot -kBE438880

其中-k是密钥号,用gpg --list-keys可列出.
也可使用debuilder自动完成后序过程。
5 如果修改了rules,用"fakeroot debian/rules binary"快速重建
6 检查 lintian -i foo *.changes



找到构建/usr/bin/foo所需要的包

objdump -p /usr/bin/foo |grep NEEDED
列出每一个库(所在的包)
dpkg -S libfoo.so.6


上传DEB包到本地档案库

配置.mini-dinstall.conf /etc/dput.cf,运行mini-dinstall --batch
在地软件库中用ln -s创建符号链接,使apt能找到文件.
运行dput local *.changes

参看automake

新的上游版本

(可以将foo-0.2放到 deb下),进入foo-0.1执行uupdate,会生成文件夹deb/foo-0.2



删除

删掉不要的软件后,运行apt-get autoremove

使用synaptic,
删除可以确认的,然后看一下Custom Filters 中自动删除的,然后选择删除。软件、库等一个一个的删除。

删除后查看检查 自动删除列表,不要把需要的删除了。
P

程序员手册

glibc-doc manpages-dev


使用缓存的软件包

使用aptitude安装
synaptic也可以


将缓存包存放到/data

cd /var/cache/apt/archives
find . -depth -print0 | cpio --null -pvd /data/apt_archives
cd ..
mv archives archives_bak
ln -s /data/apt_archives archives
rm -r archives_bak
在synaptic中配置 “文件” 中,临时文件选择保存全部

安装指定版本

aptitude install package=version
或者使用synaptic ,强制版本。通过查看版本可知有哪些版本可供选择。

使用checkinstall

checkinstall -D -pkgname=mlpack --pkgversion=3.0.2 --install=no
这个依赖关系没解决好

先解包
dpkg -X mlpack_3.0.2-1_amd64.deb extract
dpkg -e mlpack_3.0.2-1_amd64.deb extract/DEBIAN

使用ldd,dpkg -S 去确定依赖的包,修改control

再打包
dpkg-deb -b extract deb2
在deb2下
可以先安装,用ldd看哪些库找不到,再用dpkg -S 把那些库找到,再安装。

python的rebuild提供了辅助脚本:
extract.py : 解包
repack.py : 重新打包
make_depens.py: 查看和生成依赖关系

自己生成包的一些准则

1,自己生成包,一般是对版本比较敏感,尤其是第三方包,所从在生成时名称加版本号,一般只要2位就好了
2,第三方包,所有的安装文件都最好放到local下

dpkg 安装错误

由于安装过程中把机关了,再次按装时,有些软件包报错误,
到/var/lib/dpkg/info把出错的软包的文件全部删除,再重新安装。