设为首页
收藏本站
用户名
Email
自动登录
找回密码
密码
登录
注册
快捷导航
平台
Portal
论坛
BBS
文库
项目
群组
Group
我的博客
Space
搜索
搜索
热搜:
shell
linux
mysql
本版
用户
LinuxSir.cn,穿越时空的Linuxsir!
»
论坛
›
Linux 发行版讨论区 —— LinuxSir.cn
›
Archlinux讨论区
›
archlinux强化篇之debian
1
2
3
/ 3 页
下一页
返回列表
查看:
8024
|
回复:
23
archlinux强化篇之debian
[复制链接]
superjet
superjet
当前离线
积分
295
IP卡
狗仔卡
发表于 2008-5-2 14:17:38
|
显示全部楼层
|
阅读模式
1、前言
之所以在archlinux上提及debian强化,主要在于debian充沛的镜像资源、庞大的软件库和大多数包的打包质量优良,在arch上装上debian的包管理就可方便的从附近的debian镜像获取软件源码和非常有价值的patch及少量可以使用的二进制包,而且占地不多对系统本身没啥影响,只要你只是apt-get update和apt-get source来用,除非你apt-get dist-upgrade,那样的话,arch就gone away了,只剩下纯粹的debian了
。
2、实干
aur上曾有过dpkg和apt的包,不过现在搜不找不到了,可能是上传的老兄亦或被别人删了,下面贴下对应的pkgbuild,具体的(email联系)我会放到附件里。
简单步骤:
cd dpkg
makepkg
sudo pacman -U dpkg-1.14.18-2-i686.pkg.tar.gz
cd ../apt
makepkg
sudo pacman -U apt-0.7.12-2-i686.pkg.tar.gz
复制代码
dpkg
pkgname=dpkg
pkgver=1.14.18
pkgrel=2
pkgdesc="Debian Package Manager"
arch=(i686 x86_64)
url="http://www.debian.org"
license="GPL"
depends=('bzip2' 'zlib')
source=(http://ftp.debian.org/debian/pool/main/d/dpkg/dpkg_${pkgver}.tar.gz)
#md5sums=('')
build() {
cd ${startdir}/src/${pkgname}-${pkgver}
./configure PERL_LIBDIR=/usr/lib/perl5/vendor_perl \
--prefix=/usr --sysconfdir=/etc --localstatedir=/var/lib \
--with-zlib=static --with-bz2=static \
--without-dselect --without-start-stop-daemon
make DESTDIR=${startdir}/pkg install
mv ${startdir}/pkg/usr/share/perl5 ${startdir}/pkg/usr/lib
}
复制代码
apt
pkgname=apt
pkgver=0.7.12
pkgrel=2
pkgdesc="Advanced front-end for dpkg"
arch=(i686 x86_64)
url="http://packages.debian.org/sid/apt"
license="GPL"
depends=('bzip2' 'zlib' 'dpkg')
source=(http://ftp.debian.org/debian/pool/main/a/apt/apt_${pkgver}.tar.gz)
#md5sums=('')
build() {
cd ${startdir}/src/${pkgname}-${pkgver}
cp ${startdir}/makefile-doc doc/makefile
install -d build/doc/doxygen
./configure --prefix=/usr --sysconfdir=/etc --localedir=/var
make || return 1
install -d ${startdir}/pkg/{etc/{apt/apt.conf.d,logrotate.d/apt},usr/{bin,lib/apt/methods,share/{apt,bug/apt/script,man/man{1,5,8}}}}
install -d ${startdir}/pkg/usr/lib/dpkg/methods/apt
install -d ${startdir}/pkg/var/{lib/apt/lists/partial,cache/apt/archives/partial}
cp bin/apt-* ${startdir}/pkg/usr/bin/
find bin/ -type f -name "libapt-pkg*.so.*" \
-exec cp -a "{}" ${startdir}/pkg/usr/lib/ \;
find bin/ -type l -name "libapt-pkg*.so.*" \
-exec cp -a "{}" ${startdir}/pkg/usr/lib/ \;
cp bin/methods/* ${startdir}/pkg/usr/lib/apt/methods/
cp scripts/dselect/* ${startdir}/pkg/usr/lib/dpkg/methods/apt/
cp -r locale ${startdir}/pkg/usr/share/
cp debian/bugscript ${startdir}/pkg/usr/share/bug/apt/script
cp debian/apt.logrotate ${startdir}/pkg/etc/logrotate.d/apt
cp share/debian-archive.gpg ${startdir}/pkg/usr/share/apt
cp debian/apt.conf.autoremove ${startdir}/pkg/etc/apt/apt.conf.d/01autoremove
cp doc/*.1 ${startdir}/pkg/usr/share/man/man1
cp doc/*.5 ${startdir}/pkg/usr/share/man/man5
cp doc/*.8 ${startdir}/pkg/usr/share/man/man8
}
复制代码
makefile-doc,放到apt目录下
# -*- make -*-
BASE=..
SUBDIR=doc
# Bring in the default rules
include ../buildlib/defaults.mak
# Debian Doc SGML Documents
SOURCE = dpkg-tech.sgml design.sgml files.sgml guide.sgml guide.it.sgml \
cache.sgml method.sgml offline.sgml
include $(DEBIANDOC_H)
# XML man pages
SOURCE = apt-cache.8 apt-get.8 apt-cdrom.8 apt.conf.5 sources.list.5 \
apt-config.8 apt_preferences.5 \
apt-sortpkgs.1 apt-ftparchive.1 apt-extracttemplates.1 \
apt-key.8 apt-secure.8 apt-mark.8
INCLUDES = apt.ent
include $(XML_MANPAGE_H)
# Examples
SOURCE = examples/apt.conf examples/sources.list examples/configure-index
TO = $(DOC)
TARGET = binary
include $(COPY_H)
#.PHONY: headers library clean veryclean all binary program doc
doc:
ifdef DOXYGEN
DOXYGEN_SOURCES = $(shell find $(BASE)/apt-pkg -not -name .\\\#* -and \( -name \*.cc -or -name \*.h \) )
clean: doxygen-clean
doxygen-clean:
rm -fr $(BUILD)/doc/doxygen
rm -f $(BUILD)/doc/doxygen-stamp
$(BUILD)/doc/Doxyfile: Doxyfile.in
(cd $(BUILD) && ./config.status doc/Doxyfile)
$(BUILD)/doc/doxygen-stamp: $(DOXYGEN_SOURCES) $(BUILD)/doc/Doxyfile
rm -fr $(BUILD)/doc/doxygen
$(DOXYGEN) $(BUILD)/doc/Doxyfile
touch $(BUILD)/doc/doxygen-stamp
doc: $(BUILD)/doc/doxygen-stamp
endif
复制代码
3、扫尾
安装完dpkg、apt后,基本工作就做完了,下面来解决apt的gpg验证等
首先编辑一个附近debian镜像用的sources.list
sudo vi /etc/apt/sources.list
[PHP]
deb http://ftp.sjtu.edu.cn/debian sid main non-free contrib
deb-src http://ftp.sjtu.edu.cn/debian sid main non-free contrib
[/PHP]
其次,touch下apt要用的lock文件
[PHP]
sudo touch /var/lib/apt/lists/lock /var/cache/apt/archives/lock
[/PHP]
最后来解决下gpg验证,为了保险起见,下载debian-archive-keyring中的gpg文件到/usr/share/keyrings下面:
[PHP]
wget -c http://ftp.de.debian.org/debian/pool/main/d/debian-archive-keyring/debian-archive-keyring_2008.04.16+nmu1.tar.gz
tar xvf debian-archive-keyring_2008.04.16+nmu1.tar.gz
su
mkdir -p /usr/share/keyrings
mv debian-archive-keyring-2008.04.16+nmu1/keyrings/*.gpg /usr/share/keyrings/
[/PHP]
导入gpg,附带导入你选择镜像站点的gpg,apt-get update时会提示的,我选的这个是A70DAF536070D3A1
[PHP]
su
gpg --import /usr/share/keyrings/debian-keyring.gpg
gpg --import /usr/share/apt/debian-archive.gpg
gpg --armor --export A70DAF536070D3A1 |apt-key add -
[/PHP]
如此,所需工作都已完成,可以利用apt-get来更新及下载源代码了,比如
[PHP]
apt-get update
apt-get source nano
[/PHP]
[PHP]
$ sudo apt-get update
密码:
命中 http://ftp.sjtu.edu.cn sid Release.gpg
忽略 http://ftp.sjtu.edu.cn sid/main Translation-zh_CN
忽略 http://ftp.sjtu.edu.cn sid/non-free Translation-zh_CN
忽略 http://ftp.sjtu.edu.cn sid/contrib Translation-zh_CN
命中 http://ftp.sjtu.edu.cn sid Release
命中 http://ftp.sjtu.edu.cn sid/main Packages/DiffIndex
命中 http://ftp.sjtu.edu.cn sid/non-free Packages/DiffIndex
命中 http://ftp.sjtu.edu.cn sid/contrib Packages/DiffIndex
命中 http://ftp.sjtu.edu.cn sid/main Sources/DiffIndex
命中 http://ftp.sjtu.edu.cn sid/non-free Sources/DiffIndex
命中 http://ftp.sjtu.edu.cn sid/contrib Sources/DiffIndex
正在读取软件包列表... 完成
$ apt-get source nano
正在读取软件包列表... 完成
正在分析软件包的依赖关系树... 完成
需要下载 1389kB 的源代码包。
获取:1 http://ftp.sjtu.edu.cn sid/main nano 2.0.7-1 (dsc) [731B]
获取:2 http://ftp.sjtu.edu.cn sid/main nano 2.0.7-1 (tar) [1364kB]
获取:3 http://ftp.sjtu.edu.cn sid/main nano 2.0.7-1 (diff) [24.7kB]
下载 1389kB,耗时 56s (24.5kB/s)
gpg: 于 2007年12月24日 星期一 22时45分15秒 CST 创建的签名,使用 DSA,钥匙号 917A225E
gpg: 无法检查签名:找不到公钥
dpkg-source: extracting nano in nano-2.0.7
dpkg-source: info: unpacking nano_2.0.7.orig.tar.gz
dpkg-source: info: applying nano_2.0.7-1.diff.gz
[/PHP]
本帖子中包含更多资源
您需要
登录
才可以下载或查看,没有帐号?
注册
x
回复
使用道具
举报
提升卡
置顶卡
沉默卡
喧嚣卡
变色卡
显身卡
number5
number5
当前离线
积分
118
IP卡
狗仔卡
发表于 2008-5-2 15:25:33
|
显示全部楼层
sigh, 我就是因为受不了debian/ubuntu 复杂无比的dependency才逃来Archlinux的 ...
偶尔需要的话,直接拿source+patch过来也能用
回复
支持
反对
使用道具
举报
显身卡
smileoa
smileoa
当前离线
积分
256
IP卡
狗仔卡
发表于 2008-5-2 16:54:31
|
显示全部楼层
服你了LZ,我肯定不会这么用的。
回复
支持
反对
使用道具
举报
显身卡
goodhebin
goodhebin
当前离线
积分
206
IP卡
狗仔卡
发表于 2008-5-3 00:03:27
|
显示全部楼层
不得不说lz 强悍, 但想问一下, 为什么不将gentoo的 ebuild 移植过来, 那对源码的使用更方便了, 大家说呢。
顺便还是赞一下apt的经典。
回复
支持
反对
使用道具
举报
显身卡
superjet
superjet
当前离线
积分
295
IP卡
狗仔卡
楼主
|
发表于 2008-5-3 00:47:13
|
显示全部楼层
gentoo的portage解开后太占地方,因为不是所有的源码都是需要的,从debian的镜像获取源码+patch,多数速度还是令人满意的,portage的pkgbuild倒是很容易写,可以参照下
http://linuxsir.cn/bbs/thread328022.html
里面提及的arch下实现因为没提及pkgbuild基本和上面的差不多
以后有时间想把fedora的yum搞过来,rpm则早就装上了
回复
支持
反对
使用道具
举报
显身卡
axlrose
axlrose
当前离线
积分
1466
IP卡
狗仔卡
发表于 2008-5-3 00:55:03
|
显示全部楼层
支持楼主,找个时间试试看
回复
支持
反对
使用道具
举报
显身卡
axlrose
axlrose
当前离线
积分
1466
IP卡
狗仔卡
发表于 2008-5-11 19:58:02
|
显示全部楼层
试了下,不过离实用还有待完善, apt-get install foo
楼主再写细点
也许是我弄的哪个步骤没对,找时间继续再试试
回复
支持
反对
使用道具
举报
显身卡
superjet
superjet
当前离线
积分
295
IP卡
狗仔卡
楼主
|
发表于 2008-5-11 20:33:27
|
显示全部楼层
apt-get install foo 会附带把相关依赖搭上,多数情况下加--ignore-missing并不能使其只下载想要的二进制包,这时直接获取包的位置使用wget等来下载就行了,前面加上镜像的地址加上apt获取的即可
[PHP]
$wget -c http://ftp.sjtu.edu.cn/debian/`apt-cache show nano | grep pool | awk '{print $2}'`
--2008-05-11 20:24:07-- http://ftp.sjtu.edu.cn/debian/pool/main/n/nano/nano_2.0.7-1_i386.deb
正在解析主机 ftp.sjtu.edu.cn... 202.38.97.230
Connecting to ftp.sjtu.edu.cn|202.38.97.230|:80... 已连接。
已发出 HTTP 请求,正在等待回应... 200 OK
长度:584268 (571K) [application/x-debian-package]
Saving to: `nano_2.0.7-1_i386.deb'
...
[/PHP]
回复
支持
反对
使用道具
举报
显身卡
cuxnil
cuxnil
当前离线
积分
221
IP卡
狗仔卡
发表于 2008-5-12 09:19:47
|
显示全部楼层
严重支持楼主,debian的包管理机制和分类要比阿rchlinux强
回复
支持
反对
使用道具
举报
显身卡
axlrose
axlrose
当前离线
积分
1466
IP卡
狗仔卡
发表于 2008-5-17 09:08:22
|
显示全部楼层
apt-get install aptitude
正在读取软件包列表...
正在分析软件包的依赖关系树...
将会安装下列额外的软件包:
apt apt-utils aptitude-doc-en base-passwd debconf debconf-i18n
debian-archive-keyring gcc-4.1-base gnupg gpgv libbz2-1.0 libc6
libclass-accessor-perl libdb4.2 libdb4.4 libgcc1 libgcrypt11 libgdbm3
libgnutls13 libgpg-error0 libgpmg1 libhtml-parser-perl libhtml-tagset-perl
libhtml-template-perl libio-string-perl libldap2 liblocale-gettext-perl
liblzo1 libncurses5 libncursesw5 libopencdk8 libparse-debianchangelog-perl
libreadline5 libsasl2-2 libsasl2-modules libsigc++-2.0-0c2a libssl0.9.8
libstdc++6 libtasn1-3 libtasn1-3-bin libtext-charwidth-perl
libtext-iconv-perl libtext-wrapi18n-perl libtimedate-perl liburi-perl
libusb-0.1-4 libxml-libxml-common-perl libxml-libxml-perl
libxml-namespacesupport-perl libxml-sax-perl libxml-simple-perl libxml2
makedev perl perl-base perl-doc perl-modules readline-common sgml-base
tzdata xml-core zlib1g
建议安装的软件包:
dpkg-dev apt-doc bzip2 tasksel debtags debconf-doc debconf-utils whiptail
dialog gnome-utils libterm-readline-gnu-perl libgnome2-perl libqt-perl
libnet-ldap-perl gnupg-doc xloadimage locales glibc-doc rng-tools gnutls-bin
gpm libipc-sharedcache-perl libsasl2-modules-otp libsasl2-modules-ldap
libsasl2-modules-sql libsasl2-modules-gssapi-mit libwww-perl man-browser
groff sgml-base-doc debhelper
下列【新】软件包将被安装:
apt apt-utils aptitude aptitude-doc-en base-passwd debconf debconf-i18n
debian-archive-keyring gcc-4.1-base gnupg gpgv libbz2-1.0 libc6
libclass-accessor-perl libdb4.2 libdb4.4 libgcc1 libgcrypt11 libgdbm3
libgnutls13 libgpg-error0 libgpmg1 libhtml-parser-perl libhtml-tagset-perl
libhtml-template-perl libio-string-perl libldap2 liblocale-gettext-perl
liblzo1 libncurses5 libncursesw5 libopencdk8 libparse-debianchangelog-perl
libreadline5 libsasl2-2 libsasl2-modules libsigc++-2.0-0c2a libssl0.9.8
libstdc++6 libtasn1-3 libtasn1-3-bin libtext-charwidth-perl
libtext-iconv-perl libtext-wrapi18n-perl libtimedate-perl liburi-perl
libusb-0.1-4 libxml-libxml-common-perl libxml-libxml-perl
libxml-namespacesupport-perl libxml-sax-perl libxml-simple-perl libxml2
makedev perl perl-base perl-doc perl-modules readline-common sgml-base
tzdata xml-core zlib1g
共升级了 0 个软件包,新安装了 63 个软件包,要卸载 0 个软件包,有 0 个软件未被升级。
需要下载 0B/34.2MB 的软件包。
解压缩后会消耗掉 97.7MB 的额外空间。
您希望继续执行吗?[Y/n]dpkg:在 PATH 中找不到“update-rc.d”。
dpkg: 共有 1 个程序没在 PATH 中找到。
提示:root 的 PATH 环境变量通常应当包含 /usr/local/sbin、/usr/sbin 和 /sbin
复制代码
# wget -c http://debian.cn99.com/debian/`apt-cache show aptitude | grep pool | awk '{print $2}'`
# dpkg -i aptitude_0.4.4-4_i386.deb
dpkg:在 PATH 中找不到“update-rc.d”。
dpkg: 共有 1 个程序没在 PATH 中找到。
提示:root 的 PATH 环境变量通常应当包含 /usr/local/sbin、/usr/sbin 和 /sbin
复制代码
回复
支持
反对
使用道具
举报
显身卡
下一页 »
1
2
3
/ 3 页
下一页
返回列表
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
|
注册
本版积分规则
发表回复
回帖后跳转到最后一页
浏览过的版块
Linux 程序设计专题讨论
开源软件专题讨论
LFS(LinuxfromScratch)
SuSE Linux
Debian Linux
Linux 基础讨论区(新手速成)
Copyright © 2002-2023
LinuxSir.cn
(http://www.linuxsir.cn/) 版权所有 All Rights Reserved.
Powered by
RedflagLinux!
技术支持:
中科红旗
|
京ICP备19024520号
快速回复
返回顶部
返回列表