LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
楼主: d00m3d

[毁灭系列] 为 LFS 加入 Debian 支持 (第一部 dpkg)

[复制链接]
 楼主| 发表于 2008-4-29 12:58:29 | 显示全部楼层
Post by Dennis.Wang;1843275
毁灭兄,按照你的帖子装上了dpkg-1.13.25,dpkg-1.14.28编译不能通过,看来这两个版本有差别。
然后在安装mrxvt-mini_0.5.3-1_i386.deb的时候提示说:
dpkg:处理 mrxvt-mini_0.5.3-1_i386.deb (--install)时出错:
软件包的体系架构(i386)与本机系统的架构()不符
在处理时有错误发生:
mrxvt-mini_0.5.3-1_i386.deb
换成0.5.2版本的deb也是不行。
试着安装那些openoffice的deb包,都提示的这个错误。
这怎么解决呢?
兄弟如遇问题请把错误信息贴出来以便分析

我原先已升级为 dpkg-1.14.7,当时未见异常,看见帖子就尝试编译 dpkg-1.14.28,果然有问题,不过很容易解决的 :)

我遇到的问题是 dselect/dselect.h 里要求寻找 ncursesw/curses.h,由於 LFS 的 ncurses (w) 头文件放在 /usr/include 而 Debian 的 libncurses5-dev 会把ncurses 的头文件装到 ncursesw/curses.h,由於 /usr/include/ncursesw/curses.h 不存在於是编译不能通过,另一个问题是 /usr/include/ncursesw/term.h 不存在而出问题

这是因为 Debian 文件目录的差异引起的,所以建两个 symlink 便行:

cd /usr/include
mkdir ncursesw
cd ncursesw
ln -s ../curses.h curses.h
ln -s ../term.h term.h

完成後便一切顺利了 ;)

新的 dpkg-1.14.28 跟旧的不同,不用再去修改 Makefile 了,configure 完就即时可以 make 了,多方便!

Good luck!
回复 支持 反对

使用道具 举报

发表于 2008-4-29 14:46:00 | 显示全部楼层
dpkg-1.14.28安装成功了,先前出现的错误就是你说的这个。安装mrxvt-mini错误如下:
linfves [ ~/Download ]$ sudo dpkg -i mrxvt-mini_0.5.3-1_i386.deb
dpkg: error processing mrxvt-mini_0.5.3-1_i386.deb (--install):
package architecture (i386) does not match system ()
Errors were encountered while processing:
mrxvt-mini_0.5.3-1_i386.deb
回复 支持 反对

使用道具 举报

发表于 2008-4-29 17:50:51 | 显示全部楼层
其实debian的软件包(.deb)就是个ar打包的文件,里面有这样三个文件:
debian-binary, control.tar.gz, data.tar.gz
debian-binary应该是指的.deb包格式的版本,这样以后如果包结构,包格式发生变化的话,可以通过这个来识别
control.tar.gz里面是软件包的信息, 有包名称, 版本号, 适用平台, 依赖关系, 包的描述之类的东西, 还有安装/卸载前后要执行的脚本, 以及配置脚本
data.tar.gz就是包的真实内容了
所以, 直接用
  1. ar x package_version_arch.deb data.tar.gz
复制代码
就可以得到data.tar.gz了
或者直接用
  1. ar p package_version_arch.deb data.tar.gz > package_version_arch.tar.gz
复制代码
来指定.tar.gz包的名字
要是很确定可以直接安装的话,甚至可以直接把结果给tar, 让tar把data.tar.gz解到根目录下去.
还可以用tee或者重定向把解出来的文件记录下来,以便以后删除
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-4-29 20:47:56 | 显示全部楼层
LanEast 兄的方法其实在任何发行版都通用,只不过这样就等於於弃了 Debian 的包管理系统而矣,有时候作为系统急救也行 :)
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-4-29 20:50:59 | 显示全部楼层
Post by Dennis.Wang;1843861
dpkg-1.14.28安装成功了,先前出现的错误就是你说的这个。安装mrxvt-mini错误如下:
linfves [ ~/Download ]$ sudo dpkg -i mrxvt-mini_0.5.3-1_i386.deb
dpkg: error processing mrxvt-mini_0.5.3-1_i386.deb (--install):
package architecture (i386) does not match system ()
Errors were encountered while processing:
mrxvt-mini_0.5.3-1_i386.deb
被误导了,今天为止,dpkg 的最新版只是 1.14.[color="Red"]18 :(

Debian 的包有其依赖关系,不是随意用 dpkg -i 就能无痛安装的,这是 dpkg 跟 apt 的最大差异,所以应先行了解依赖是否满足了才能安装

装 mrxvt-mini 要先装 mrxvt-common,然後再用 dpkg -i --force-depends 来装 mrxvt-mini (前面顶帖已有说明)

至於 OpenOffice 的包就解包後再用 dpkg -i --force-depends --force-overwrite *.deb 来装了

话说回来,兄弟出现的问题好像跟依赖无关,dpkg 并非反映依赖出错,而是什麽系统架构不符,会否 /var/lib/dpkg 下的几个空文件及 update-rc.d 等尚未建立?

ls -al /var/lib/dpkg 及 ls -l /usr/sbin/update-rc.d 的结果是?

dpkg --version 或 dpkg -l 有输出否?
回复 支持 反对

使用道具 举报

发表于 2008-4-30 08:50:28 | 显示全部楼层
Post by d00m3d;1844017
被误导了,今天为止,dpkg 的最新版只是 1.14.[color="Red"]18 :(

Debian 的包有其依赖关系,不是随意用 dpkg -i 就能无痛安装的,这是 dpkg 跟 apt 的最大差异,所以应先行了解依赖是否满足了才能安装

装 mrxvt-mini 要先装 mrxvt-common,然後再用 dpkg -i --force-depends 来装 mrxvt-mini (前面顶帖已有说明)

至於 OpenOffice 的包就解包後再用 dpkg -i --force-depends --force-overwrite *.deb 来装了

话说回来,兄弟出现的问题好像跟依赖无关,dpkg 并非反映依赖出错,而是什麽系统架构不符,会否 /var/lib/dpkg 下的几个空文件及 update-rc.d 等尚未建立?

ls -al /var/lib/dpkg 及 ls -l /usr/sbin/update-rc.d 的结果是?

dpkg --version 或 dpkg -l 有输出否?



呵呵,果然我眼浊了,是1.14.18,非1.14.28。毁灭兄,sorry!
对debian的依赖不熟悉,还请您多多指导。
linfves [ ~/Download ]$ ls -al /var/lib/dpkg/
total 44
drwxr-xr-x  8 root root  4096 2008-04-30 08:44 .
drwxr-xr-x 13 root root   132 2008-04-27 23:29 ..
drwxr-xr-x  2 root root     6 2008-04-27 23:29 alternatives
-rw-r--r--  1 root root 14344 2008-04-30 08:44 available
-rw-r--r--  1 root root 14344 2008-04-29 14:49 available-old
drwxr-xr-x  2 root root    86 2008-04-29 14:41 info
-rw-r-----  1 root root     0 2008-04-30 08:44 lock
drwxr-xr-x  5 root root    40 2008-04-27 23:29 methods
drwxr-xr-x  2 root root     6 2008-04-27 23:29 parts
-rw-r--r--  1 root root  1042 2008-04-30 08:44 status
-rw-r--r--  1 root root  1042 2008-04-29 14:49 status-old
drwxr-xr-x  2 root root    32 2008-04-29 14:41 triggers
drwxr-xr-x  2 root root     6 2008-04-30 08:44 updates

linfves [ ~/Download ]$  ls -l /usr/sbin/update-rc.d
-rwxr-xr-x 1 root root 0 2008-04-27 23:30 /usr/sbin/update-rc.d

linfves [ ~/Download ]$ dpkg --version
Debian `dpkg' package management program version 1.14.18 ().
This is free software; see the GNU General Public License version 2 or
later for copying conditions. There is NO warranty.
See dpkg --license for copyright and license details.

linfves [ ~/Download ]$ dpkg -l
Desired=Unknown/Install/Remove/Purge/Hold
| Status=Not/Inst/Cfg-files/Unpacked/Failed-cfg/Half-inst/trig-aWait/Trig-pend
|/ Err?=(none)/Hold/Reinst-required/X=both-problems (Status,Err: uppercase=bad)
||/ Name           Version        Description
+++-==============-==============-============================================
ii  mrxvt-common   0.5.3-1        lightweight multi-tabbed X terminal emulator
回复 支持 反对

使用道具 举报

发表于 2008-4-30 11:04:24 | 显示全部楼层
Post by d00m3d;1844016
LanEast 兄的方法其实在任何发行版都通用,只不过这样就等於於弃了 Debian 的包管理系统而矣,有时候作为系统急救也行 :)


原来d00m3d兄是想用dpkg做包管理啊
之前也想过,不过不太喜欢,用debian/ubuntu的包依赖关系烦人,又懒得去学用debian的包管理去做deb包
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-5-1 05:52:35 | 显示全部楼层
非也,俺在 LFS 下是用 paco 管理包的,dpkg 只是附助,便於安装哪些不愿意自行编译的怪兽级软件,如 OpenOffice.org 之类而矣

以前我在 Debian 下也会借助 checkinstall 做个 deb 包来用 dpkg 安装,现在也干脆在 Debian 下使用 paco,所以我用的系统都不纯净,哈哈!

俺常言:系统是供人使用的,应该是我玩它,不是它玩我!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-5-1 05:58:00 | 显示全部楼层
Post by Dennis.Wang;1844189
呵呵,果然我眼浊了,是1.14.18,非1.14.28。毁灭兄,sorry!
对debian的依赖不熟悉,还请您多多指导。
linfves [ ~/Download ]$ ls -al /var/lib/dpkg/
total 44
drwxr-xr-x  8 root root  4096 2008-04-30 08:44 .
drwxr-xr-x 13 root root   132 2008-04-27 23:29 ..
drwxr-xr-x  2 root root     6 2008-04-27 23:29 alternatives
-rw-r--r--  1 root root 14344 2008-04-30 08:44 available
-rw-r--r--  1 root root 14344 2008-04-29 14:49 available-old
drwxr-xr-x  2 root root    86 2008-04-29 14:41 info
-rw-r-----  1 root root     0 2008-04-30 08:44 lock
drwxr-xr-x  5 root root    40 2008-04-27 23:29 methods
drwxr-xr-x  2 root root     6 2008-04-27 23:29 parts
-rw-r--r--  1 root root  1042 2008-04-30 08:44 status
-rw-r--r--  1 root root  1042 2008-04-29 14:49 status-old
drwxr-xr-x  2 root root    32 2008-04-29 14:41 triggers
drwxr-xr-x  2 root root     6 2008-04-30 08:44 updates

linfves [ ~/Download ]$  ls -l /usr/sbin/update-rc.d
-rwxr-xr-x 1 root root 0 2008-04-27 23:30 /usr/sbin/update-rc.d

linfves [ ~/Download ]$ dpkg --version
Debian `dpkg' package management program version 1.14.18 ().
This is free software; see the GNU General Public License version 2 or
later for copying conditions. There is NO warranty.
See dpkg --license for copyright and license details.

linfves [ ~/Download ]$ dpkg -l
Desired=Unknown/Install/Remove/Purge/Hold
| Status=Not/Inst/Cfg-files/Unpacked/Failed-cfg/Half-inst/trig-aWait/Trig-pend
|/ Err?=(none)/Hold/Reinst-required/X=both-problems (Status,Err: uppercase=bad)
||/ Name           Version        Description
+++-==============-==============-============================================
ii  mrxvt-common   0.5.3-1        lightweight multi-tabbed X terminal emulator
有点奇怪,貌似要的东西都存在,而且 mrxvt-common 都成功装上了

用 dpkg -i --force-depends mrxvt-mini_0.5.3-1_i386.deb 来安装行不?

还有一问,你现在的系统是 64 位的吗?
回复 支持 反对

使用道具 举报

发表于 2008-5-1 13:04:52 | 显示全部楼层
Post by d00m3d;1844526
有点奇怪,貌似要的东西都存在,而且 mrxvt-common 都成功装上了

用 dpkg -i --force-depends mrxvt-mini_0.5.3-1_i386.deb 来安装行不?

还有一问,你现在的系统是 64 位的吗?


linfves [ ~/Download ]$ sudo dpkg -i --force-depends mrxvt-mini_0.5.3-1_i386.deb
dpkg: error processing mrxvt-mini_0.5.3-1_i386.deb (--install):
package architecture (i386) does not match system ()
Errors were encountered while processing:
mrxvt-mini_0.5.3-1_i386.deb

不行啊,就是提示说系统架构不一样,我的是32位的notebook。
回复 支持 反对

使用道具 举报

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

本版积分规则

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