LinuxSir.cn,穿越时空的Linuxsir!

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

挂载tmpfs时始终缺少libuuid.so.1和libblkid.so.1

[复制链接]
发表于 2006-3-1 13:36:29 | 显示全部楼层 |阅读模式
作到6.8.2. Mounting tmpfs and Populating /dev
mount -nvt tmpfs none /dev
挂在tmpfs的时候就报错缺少
mount: error while loading shared libraries: libblkid.so.1: cannot open shared object file: No such file or directory
mount: error while loading shared libraries: libuuid.so.1: cannot open shared object file: No such file or directory
安装步骤严格按照lfs book
作了2次都是到这里有报错
当然我用livecd的lib文件复制过去可以解决这个问题
但是想知道问题出在哪里
发表于 2006-3-1 13:53:56 | 显示全部楼层
虽然不清楚哪里错了,但我肯定是你没有[color="Red"]安装步骤严格按照lfs book
用liveCD,按照lfs book,会出错,打死我也不信!

猜测是你的perl有问题
perl没有说明自己安装的库
安装的库: 太多了,数不过来!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-3-1 14:04:03 | 显示全部楼层
如果严格按照lfs book
那恐怕是一步都装不下去
因为它没有说要把东西全部截压到某个目录
所有的命令都是缺少解压和目录更换指令的

我省去的一些部分
就是glibc的local支持(国际性支持)
其他所有内容都安装了
要求测试的地方也都测试通过

还有这个模块我不相信是perl里面的
因为是对tmpfs的支持应该是系统性的内容
回复 支持 反对

使用道具 举报

发表于 2006-3-1 14:07:52 | 显示全部楼层
嚼舌头是没用的。

ldd /tools/bin/mount
gcc -dumpspecs

贴出结果。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-3-1 14:21:59 | 显示全部楼层
linux-gate.so.1 =>  (0xffffe000)
        libblkid.so.1 => /tools/lib/libblkid.so.1 (0xb7fe5000)
        libuuid.so.1 => /tools/lib/libuuid.so.1 (0xb7fe1000)
        libc.so.6 => /tools/lib/libc.so.6 (0xb7ed4000)
        /tools/lib/ld-linux.so.2 (0xb7fec000)

gcc的 specs文件内容

  1. *asm:
  2. %{v:-V} %{Qy:} %{!Qn:-Qy} %{n} %{T} %{Ym,*} %{Yd,*} %{Wa,*:%*}

  3. *asm_debug:
  4. %{gstabs*:--gstabs}%{!gstabs*:%{g*:--gdwarf2}}

  5. *asm_final:


  6. *asm_options:
  7. %a %Y %{c:%W{o*}%{!o*:-o %w%b%O}}%{!c:-o %d%w%u%O}

  8. *invoke_as:
  9. %{!S:-o %|.s |
  10. as %(asm_options) %|.s %A }

  11. *cpp:
  12. %{posix:-D_POSIX_SOURCE} %{pthread:-D_REENTRANT}

  13. *cpp_options:
  14. %(cpp_unique_options) %1 %{m*} %{std*} %{ansi} %{W*&pedantic*} %{w} %{f*} %{g*:%{!g0:%{!fno-working-directory:-fworking-directory}}} %{O*} %{undef}

  15. *cpp_debug_options:
  16. %{d*}

  17. *cpp_unique_options:
  18. %{C|CC:%{!E:%eGCC does not support -C or -CC without -E}} %{!Q:-quiet} %{nostdinc*} %{C} %{CC} %{v} %{I*} %{P} %I %{MD:-MD %{!o:%b.d}%{o*:%.d%*}} %{MMD:-MMD %{!o:%b.d}%{o*:%.d%*}} %{M} %{MM} %{MF*} %{MG} %{MP} %{MQ*} %{MT*} %{!E:%{!M:%{!MM:%{MD|MMD:%{o*:-MQ %*}}}}} %{trigraphs} %{remap} %{g3:-dD} %{H} %C %{D*&U*&A*} %{i*} %Z %i %{E|M|MM:%W{o*}}

  19. *trad_capable_cpp:
  20. cc1 -E %{traditional|ftraditional|traditional-cpp:-traditional-cpp}

  21. *cc1:
  22. %(cc1_cpu) %{profile:-p}

  23. *cc1_options:
  24. %{pg:%{fomit-frame-pointer:%e-pg and -fomit-frame-pointer are incompatible}} %1 %{!Q:-quiet} -dumpbase %B %{d*} %{m*} %{a*} %{c|S:%{o*:-auxbase-strip %*}%{!o*:-auxbase %b}}%{!c:%{!S:-auxbase %b}} %{g*} %{O*} %{W*&pedantic*} %{w} %{std*} %{ansi} %{v:-version} %{pg:-p} %{p} %{f*} %{undef} %{Qn:-fno-ident} %{--help:--help} %{--target-help:--target-help} %{!fsyntax-only:%{S:%W{o*}%{!o*:-o %b.s}}} %{fsyntax-only:-o %j} %{-param*}

  25. *cc1plus:


  26. *link_gcc_c_sequence:
  27. %{static:--start-group} %G %L %{static:--end-group}%{!static:%G}

  28. *endfile:
  29. %{shared|pie:crtendS.o%s;:crtend.o%s} crtn.o%s

  30. *link:
  31. %{!static:--eh-frame-hdr} -m elf_i386 %{shared:-shared}   %{!shared:     %{!ibcs:       %{!static:      %{rdynamic:-export-dynamic}     %{!dynamic-linker:-dynamic-linker /tools/lib/ld-linux.so.2}}  %{static:-static}}}

  32. *lib:
  33. %{pthread:-lpthread}    %{shared:-lc}    %{!shared:%{mieee-fp:-lieee} %{profile:-lc_p}%{!profile:-lc}}

  34. *libgcc:
  35. %{static|static-libgcc:-lgcc -lgcc_eh}%{!static:%{!static-libgcc:%{!shared-libgcc:-lgcc --as-needed -lgcc_s%M --no-as-needed}%{shared-libgcc:-lgcc_s%M%{!shared: -lgcc}}}}

  36. *startfile:
  37. %{!shared: %{pg|p|profile:gcrt1.o%s;pie:Scrt1.o%s;:crt1.o%s}}    crti.o%s %{static:crtbeginT.o%s;shared|pie:crtbeginS.o%s;:crtbegin.o%s}

  38. *switches_need_spaces:


  39. *cross_compile:
  40. 0

  41. *version:
  42. 3.4.3

  43. *multilib:
  44. . ;

  45. *multilib_defaults:


  46. *multilib_extra:


  47. *multilib_matches:


  48. *multilib_exclusions:


  49. *multilib_options:


  50. *linker:
  51. collect2

  52. *link_libgcc:
  53. %D

  54. *md_exec_prefix:


  55. *md_startfile_prefix:


  56. *md_startfile_prefix_1:


  57. *startfile_prefix_spec:


  58. *sysroot_suffix_spec:


  59. *sysroot_hdrs_suffix_spec:


  60. *cc1_cpu:
  61. %{!mtune*: %{m386:mtune=i386 %n`-m386' is deprecated. Use `-march=i386' or `-mtune=i386' instead.
  62. } %{m486:-mtune=i486 %n`-m486' is deprecated. Use `-march=i486' or `-mtune=i486' instead.
  63. } %{mpentium:-mtune=pentium %n`-mpentium' is deprecated. Use `-march=pentium' or `-mtune=pentium' instead.
  64. } %{mpentiumpro:-mtune=pentiumpro %n`-mpentiumpro' is deprecated. Use `-march=pentiumpro' or `-mtune=pentiumpro' instead.
  65. } %{mcpu=*:-mtune=%* %n`-mcpu=' is deprecated. Use `-mtune=' or '-march=' instead.
  66. }} %<mcpu=* %{mpni:-msse3 %n`-mpni' is deprecated. Use `-msse3' instead.
  67. } %{mno-pni:-mno-sse3 %n`-mno-pni' is deprecated. Use `-mno-sse3' instead.
  68. } %{mintel-syntax:-masm=intel %n`-mintel-syntax' is deprecated. Use `-masm=intel' instead.
  69. } %{mno-intel-syntax:-masm=att %n`-mno-intel-syntax' is deprecated. Use `-masm=att' instead.
  70. }

  71. *link_command:
  72. %{!fsyntax-only:%{!c:%{!M:%{!MM:%{!E:%{!S:    %(linker) %l %{pie:-pie} %X %{o*} %{A} %{d} %{e*} %{m} %{N} %{n} %{r}    %{s} %{t} %{u*} %{x} %{z} %{Z} %{!A:%{!nostdlib:%{!nostartfiles:%S}}}    %{static:} %{L*} %(link_libgcc) %o %{fprofile-arcs|fprofile-generate:-lgcov}    %{!nostdlib:%{!nodefaultlibs:%(link_gcc_c_sequence)}}    %{!A:%{!nostdlib:%{!nostartfiles:%E}}} %{T*} }}}}}}
复制代码
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-3-1 14:23:42 | 显示全部楼层
注意
上面ldd /tools/bin/mount的结果是我将两个动态连接库直接复制到/tools/lib下
以后的
回复 支持 反对

使用道具 举报

发表于 2006-3-1 14:30:57 | 显示全部楼层
很奇怪,我的 mount 是没有这2个库的。
# ldd mount
        linux-gate.so.1 =>  (0xffffe000)
        libc.so.6 => /tools/lib/libc.so.6 (0xb7e4c000)
        /tools/lib/ld-linux.so.2 (0xb7f6f000)

应该是主系统带进来的,是不是哪个步骤打错了?
回复 支持 反对

使用道具 举报

发表于 2006-3-1 14:38:54 | 显示全部楼层
5.1. 简介
在运行一个软件包的编译指令之前,需要用 lfs 用户解开这个软件包,并用 cd 命令进入软件包解开后的目录。编译指令假定您使用的是 bash shell 。


我不清楚LZ对这句话怎么理解的,难道这不是对路径的最好答案吗?

mount 是Util-linux里面的程序:
安装依赖于:
Bash, Binutils, Coreutils, Diffutils, GCC, Gettext, Glibc, Grep, Make, Ncurses, Sed, Zlib

就这里面的东东,有个你安装出错了。

[color="Red"]或者你在编译util-linux的时候,toolchain是个坏的!你用了host上的Lib,所以出错。
编译mount和运行mount用的不是一个lib,至于拷贝过去了,怎么就好了.lib的问题。
个人比较同一后者
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-3-1 14:39:42 | 显示全部楼层
按照标准作法来
应该是没有这两个库
但是在执行
作到6.8.2. Mounting tmpfs and Populating /dev
mount -nvt tmpfs none /dev
这个时候
tmpfs需要这两个库
而这个时候环境已经chroot到纯净的环境了
回复 支持 反对

使用道具 举报

发表于 2006-3-1 14:43:02 | 显示全部楼层
有了斑竹的提示,我知道答案:
util-linux可以用自己的库,而LZ没有安装书上的configure,用了系统的库,而不是util-linux自己带的。


Util-linux 默认不使用刚才安装在 /tools 目录下的头文件和库文件,我们更改配置脚本来修正这个问题:

sed -i 's@/usr/include@/tools/include@g' configure准备编译 Util-linux:

./configure编译一些支持例程:

make -C lib我们只需要这个软件包中的某些工具,因此只需要编译这几个工具就可以了:

make -C mount mount umount
make -C text-utils more
回复 支持 反对

使用道具 举报

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

本版积分规则

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