Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1038359
  • 博文数量: 836
  • 博客积分: 43880
  • 博客等级: 大将
  • 技术积分: 5485
  • 用 户 组: 普通用户
  • 注册时间: 2008-08-20 17:36
文章分类

全部博文(836)

文章存档

2011年(1)

2008年(835)

我的朋友

分类: LINUX

2008-08-20 18:21:17


1.解压缩包

  可以通过下载或其他方式获得了一个软件包,通常它是一个压缩文件,大部分可能是存档的和压缩的,这些文件一般以.tar.gz为扩展名。

  首先拷贝它到一个目录,然后untar和gunzip解压它。通常这个命令是

  tarxzvffilename[filename是软件文件名称]

  解压后的文件一般会在当前目录下的创建子目录,并以这个包名来命名。你也可以用用这个命令预先查看结果tartzvffilename,显示包里有那些解压文件。

  源文件如果是新的bzip2(.bz2)格式,可用bzip2-cdfilename|tarxvf-,或更简单的tarxyvffilename,这很不错的tar命令被不断的完善。

  说明:

  A:有时候一些文件必须安装在用户的home目录下,或更多的是在一个固定的目录,比如/,/usr/src,或/opt。所以必须仔细阅读安装包的配置信息。当一个软件包里如果有config和Makefiles文件则最好去编辑它,这里包括了安装指令和说明。提示:你改变makefile会导致不同的结果。大部分软件包允许用makeinstall自动处理安置二进制文件在适当的系统位置。

  B:你可能碰到过一些共享文件、shell存档文件、尤其是Internet上的源码新闻组。它们保留的原因是具有人性化的可读性,并且允许新闻组缓冲并通过它们筛选和剔除出不合格的。它们可能用unsharfilename.shar命令来解压。

  C:一些源码存档文件是用非标准的DOS,Mac或其他压缩的比如:zip,arc,lha,arj,zoo,rar,andshk.

  D:有时候,你可能需要使用一个patch或显示改变了的diff文件来升级或修复存档的源码文件。这doc文件或者README文件将告诉你怎么去使用。一个很好的命令用标准语法来调用的命令是patch

  2.关于rpm安装包

  一些Linux用户惧怕通过使用源码来手动安装软件包,不过现在有方便的rpm和deb或新格式的slp包。例如:rpm安装运行平稳又快,作为一个软件安装在某几个有名的操作系统。

  作为方便的RPM包也存在很多不好的缺点,例如:
  A:要了解软件中更多更详细的内容你必须去在二进制中去了解,而不是rpm包。

  B:还有安装一个rpm包如果需要依赖关系那么安装就可能会导致失败。

  C:当rpm请求你系统中不同版本的库,那么安装将不能继续,除非你为错误的库位置创建连接符号到正确的位置。

  说明:必须使用root安装rpm和deb。因为它需要必须的写入权限。

  最简单的,用命令rpm-ipackagename.rpm和dpkg--installpackagename.deb会自动解包和安装。

  3.关于安装Linux包出现的一些问题及解决方案

  假设make失败有个链接错误:-lX11:Nosuchfileordirectory,正好在xmkmf之后已被调用,这可能意味着Imake不能被完全建立。检查第一部分Makefile文件的的行是这样:

  LIB=-L/usr/X11/lib
  INCLUDE=-I/usr/X11/include/X11
  LIBS=-lX11-lc-lm

  这个-L和-I开关告诉编译器和链接分别在哪里找到library和include文件。在这个例子里,X11库应该在/usr/X11/lib目录,且X11包含文件应该在/usr/X11/include/X11目录里。假如对于你的机器上的这个错误,请处理修改Makefile并重新再make。

  没有声明涉及的数学库函数,像下列各项:
  /tmp/cca011551.o(.text 0x11):undefinedreferenceto`cos''

  要修复它,需要明确链接到匹配的库,在Makefile(看先前的例子)里增加一个-lm到LIB或LIBS标记。

  用其他方法尝试
  仍然失败如果失败,参考下列脚本:
  make-DUseInstalled-I/usr/X386/lib/X11/config

  这个直接方式的类别相当于。

  在少数例子里,用root运行ldconfig可能会解决:
  #ldconfig更新共享库链接符号。

  一些Makefiles使用你系统里未被承认的库别名。一个例子,构建可能需要libX11.so.6,但是在/usr/X11R6/lib不存在文件或链接。然而,在那里是libX11.so.6.1。解决方法是用root运行ln-s/usr/X11R6/lib/libX11.so.6.1/usr/X11R6/lib/libX11.so.6,接着需要运行ldconfig。

  有一些包需要你安装一个或更多库的升级版本。需要拷贝一个或更多的库到适当的目录里,删除旧的库,重新设置动态链接库。

  4.一些其他的问题处理

  安装一个shell脚本如果出现:Nosuchfileordirectory的错误消息。这是可以检查文件权限确定文件事可执行的,并检查文件头确定是否shell或程序是脚本在指定的位置被调用。一个例子,这个脚本可能是这样开始的:

  #!/usr/local/bin/EDEN

  如EDEN的实际安装位置是在你的/usr/bin目录,用一个/usr/local/bin替代

  这个脚本不能运行有两个方法来纠正!

  A:文件头改成#!/usr/bin/EDEN

  B:或增加一个链接符,ln-s/usr/bin/EDEN

  5.一个典型的例子Xloadimage

  首先说明下面的例子来源于国外网站的一个技术实例,这里我做了翻译和整理。

  这个例子展现一个简单的问题。xloadimage程序对我的图形工具的调整设置是有用的附加。从源码目录拷贝文件,用tarxzvf解压文件,可是在运行make的时候出现令人讨厌的错误并停止了。

  gcc-c-O-fstrength-reduce-finline-functions-fforce-mem
  -fforce-addr-DSYSV-I/usr/X11R6/include
  -DSYSPATHFILE=\"/usr/lib/X11/Xloadimage\"mcidas.c
  Infileincludedfrom/usr/include/stdlib.h:32,

fromimage.h:23,

fromxloadimage.h:15,

frommcidas.c:7:

  /usr/lib/gcc-lib/i486-linux/2.6.3/include/stddef.h:215:

  conflictingtypesfor`wchar_t''

  /usr/X11R6/include/X11/Xlib.h:74:previousdeclarationof

  `wchar_t''

  make[1]:***[mcidas.o]Error1

  make[1]:Leavingdirectory

  `/home/thegrendel/tst/xloadimage.4.1''

  make:***[default]Error2

  这个错误消息包含了实质的线索:

  查看image.h文件的23行:
  #include

  在源码的某处对于xloadimage,wchar_t已经在指定标准include文件重新定义。告诉我们首先在image.h的23行尝试注释它,或许stdlib.hinclude是不存在的,毕竟不是所有都是必需的。

  在这点,构建中的收益来源于所有任何一个致命错误。xloadimage现在功能正常。

  6.安装Linux包的一些总结

  坚持自己动手处理所有的安装出现的问题,不断总结努力学习,从错误里去仔细研究,努力动手排错,从每个不足甚至失败的地方得到扩充和提升,可以增强安装构建软件的技巧。


下载本文示例代码
阅读(433) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~