zoukankan      html  css  js  c++  java
  • Linux程序安装方法(给新手看,特啰嗦)


    首 先,纠正一个大家一个错误的观念,Linux(见注释)并不是简单的配置文件加命令,它还应包括以GPL为代表的“人人为我,我为人人”道德风尚(比如我 们的版主义务为我们回答问题,向辛勤工作的版主们致敬!),这也是Linux在世界范围内迅猛发展的原因。关于GPL的详细内容见

    http://www.linuxfans.org/nuke/mo ... ewtopic&t=22301
    下面是正文:

    最近,Linux的打包方式又有了很大的发展。我希望,我的这点东西,可以涵盖主要的安装方法。一方面,可以为一些比我还菜的人,提供一些参考。另一方 面,有些帖子,直接说,什么发行版,安装什么出错。你究竟是怎么安装的,没人知道。也希望有人再提问题的时候,能够包涵足够的信息。这样,我们也好为你解 答。
    Linux程序安装,总的来说,可以分为两种:一是源码包,文件名一般是*.tar.gz,*.tar.bz2,*.tgz和*.tbz2是它们相应的缩 写格式;二是二进制包,一般是为特定发行版制作的,种类较多,*.rpm,*.deb,*.run,我也见过*.tbz2格式的二进制包。

    我想,按照源码和二进制包的分类方法,说Linux软件的安装,会比较麻烦。因为常常是,一种发行版,有二进制包,也有源码包,讲二进制安装方法会免不了 把一个发行版的包管理机制扯碎。我们把Linux程序的安装,分为三个部分:一是通用的源码安装方法;二是通用的二进制包安装方法;三是发行版相关的安装 方法。

    1通用源码
    通用源码安装,常见于这么几种清况:1你的发行版,不包括这个软件;2你的发行版包涵的这个软件的版本太旧,你希望新的工能;3你希望定制软件,得到个性 化到软件。因为,通常这种安装方法,耗时又耗力,而且对系统升级会带来一些不利的影响,新手最好三思而后行。但,同时,自己从头开使编译一个软件,对提高 Linux水平很有帮助,闲瞎之余,也可以编个玩玩。只是不要安装,或就安装在自己的目录下,玩够了就删。

    1)根据你要安装的程序是否需要X支持,可以分为两类。所谓的X,就是我们在Linux上看到的图形界面。如果你是在Linux下用firefox上网, 来到Linux公社的,那么你现在看到的桌面上的所有东西都是X。跟X相对的是虚拟终端界面。按下键盘上的Alt-Ctrl-F1(等等,先别按),你就 可以看到一个黑乎乎的屏幕,它就是虚拟终端。Alt-Ctrl-F1,Alt-Ctrl-F2……Alt-Ctrl-F6都是虚拟终端,Alt- Ctrl-F7是图形界面。如果你要安装的程序需要X支持,那么,你就应该先安装X的开发包。不过,不要担心,一般的发行版,都会在你安装X的同时,把X 开发包安上。只是,对于debian发行版,情况有些不同。它把Linux软件分得相当细,很可能默任不安装任何开发软件包(包括X)。
    2)在登录到图形界面的时候,你注意一下。你的登录页是否有个Session选项,中文的是会话选项。如果有,点一下,很可能就有KDE和Gnome。因 为直接开发X程序,是比较麻烦的事情。就有了建筑在X之上的开发库,qt和gtk+。qt是KDE的开发库,gtk+是Gnome的开发库。qt的作者 呢,是Trolltech,就是生产opera浏览器的那个公司了。因为最初的qt是GPL不兼容的,所以就有了GNOME,全称是 GNU Network Object Model Environment。当然,现在在Linux平台,qt已经是GPL兼容的了。如果你想要编译KDE程序,qt库是必须安装的。gtk库包括 glib、pango、atk、gtk+四个组成部分,如果你要编译相应的软件,就必须把它们都装上。
    3)当然,在Linux下,还有很多的其它一些库,像libpng,libtiff等等。经常安装一个软件,找不到libxxx.so.x(经常是这个格 式),我想这是对于新手安装软件最为棘手的问题──这也是大虾常劝大家把所有开发库都装上的原因。不过,不要急,libxxx.so.x中的xxx很可能 就是相应库的名字。你可以用locate找找看,电脑上有没有相应的文件。
    代码:locate libxxx.so.x
    如果有,切换到跟用户,打开/etc/ld.so.conf(不同的发行版,可能有所差别,gentoo就没有这个目录;看一下ldconfig的帮助文 件),看里面有没有相应文件夹的路径(或者说,里面有没有相应的目录;注意是目录,不是文件的绝对路径)。如果没有,添加,保存;再运行 ldconfig。
    感觉这种情况比较少见(除非你自己拷了其它的库。我的一个同学需要安装intel的Fortran编译器,他把它拷到/opt/下)。
    4)下面说到最关键的地方,就是编译工具。Linux 下最重要的编译工具当然是gcc,gcc包括gcc和glibc。glibc是gcc的主要c库。要想自己编译程序,当然得装(ps,自己在linux下 做C练习,也是少不了的)。还有make(怀疑其他版是否有这个软件包──debian分的太细),automake和 autoconf,libtools,flex,bison。懒得介绍它们了,感兴趣的可以看一下lfs的手册,虽然不一定把lfs装一遍。公社的http://www.linuxfans.org/nuke/mo ... wtopic&t=135828
    黄嘴企鹅的http://lfs.linuxsir.org/doc/lfs6.1zh/如果,提示找不到g77,还要装g77编译器──一般人碰不到这情况。
    5)下载源码,解包,编译。代码:
    tar -xzvf *.tar.gz或tar -xjvf *.tar.bz2
    (tar -xzfv *.tgz或tar -xjvf *.tbz2)
    解包之后,一般生成的目录中,会有README文件或INSTALL文件,或类似的文件。按照说明,一步一步的做就行了。

    注意:出了问题求助,最好给出电脑完整的报错信息和编译器版本(gcc -v),你的软件安装方式(源码)、版本,系统版本(如debian unstable)。

    2通用二进制
    1)常见的是安装realplayer和nvidia的驱动。切换到根用户,代码:
    chmod +x xxx.run (更改xxx.run的属性,使它能够运行)
    ./xxx.run (是用xxx.run的相对路径运行它)
    2)rpm包,可以用rpm2targz转化为tar.gz格式,用rpm2cpio转化成cpio格式。有的file-roler也可以解开rpm文 件。deb文件可以用ar -x *.deb解开。解开后,把它们拷到你喜欢的地方。然后把相应可执行文件所在的目录(一般是个bin目录)加到自己的PATH变量中。代码:
    export PATH=/xxx/xxxx/xxx/bin:$PATH
    你也可以把上面的代码加到自己家目录下的.bash_profile(没有就建一个)或.bashrc中。
    3)功能强大的alien
    正如alien的帮助文件(man alien)所说,alien是一个不断试验,不断改进中的程序。你不能通过它安装系统级的程序。alien可以在RedHat的rpm,Debian的 deb,Slackware的tgz,Solaris的pkg格式之间转换。为方便起见,不写文件括展命,统写作xxx
      alien默认产生deb包
               alien xxx
      制作rpm包
               alien -r xxx
      制作tgz包
               alien -t xxx
      产生lsp包
               alien --to-lsp xxx
    更多详细内容请查看alien的帮助文件(“man alien”;顺便说一句:linux的另一种帮助文件的查看方法是info 命令;“命令 --help” 可以给出简单的参数说明;还一种另类办法是”strings /路径/命令“,可以查看命令中包含的字符串)。
    3发行版相关
    1)debian包
    debian下常用的软件安装方法是apt-get install xxx.deb,我想黄嘴企鹅的jhuangjiahua所谓“用debian就像家里开超市一样”,很大程度上就是因为apt-get安装软件方便(另 一点是debian软件包很丰富)。为了让apt-get充分发挥性能,我们必须配置好apt源。修改/etc/apt/sources.list,参考 下帖(必须注意,里面的版本新旧不同;我就是不小心用了unstable的源,不得不使用了debian unstable)
    http://www.linuxfans.org/nuke/mo ... er=asc&start=60
    设置代理修改/etc/apt/apt.conf(没有就建一个)
    Acquire::ftp:roxy "ftp://user:pass@ip:1080"; (socks proxy)
    Acquire::ftp:roxy "http://user:pass@ip:8080"; (http proxy)
      获取当前服务器上软件包的信息(是安装升级的前提条件)
              apt-get update
      删除一个软件包
              apt-get remove xxx;
      搜索一个软件包
              apt-cache search xxx。
    debian下,另一个功能很强的命令是dpkg。
      安装一个你自己下载的deb包
              dpkg -i xxx.deb
      删除一个软件包
              dpkg -r xxx
      设置一个软件包
              dpkg-reconfigure xxx(比如你的xserver-xorg,或者exim)
      查寻一个软件包的状态
              dpkg --status xxx
      列出安装的软件包
              dpkg -l
    debian下一个比较新的包管理工具是aptitude,据说可以更好地解决依赖性问题。
    2)Fedora Core
    它的包管理机制跟apt差不多(似乎Fedora也支持apt方式的升级),常见的是yum。首先是配置它的源,用搜索引擎(比如 www.sogou.com)搜索“yum 源”,应该能够收获不小。系统在/etc/下提供了一个yum的配置文件,先保存一个备份,然后再对它进行修改(在Linux下,修改配置文件都应该先做 备份)。我只用过一次,隐约记得上海交通大学的源不错(ftp://ftp.stju.edu.cn)。
    3)Gentoo Linux(似乎不是新手该用的,清华ftp.tsinghua.edu.cn和上海交大的源都不错)
    4)Magic Linux(到Magic技术支持版寻找答案吧)
    5)Mandrava(不曾用过
    6)华镭(祝贺公社华镭版开张)
    7)RedHat
    rpm是RedHat Package Manager的缩写。
      安装一个包
              rpm -ivh xxx.rpm
       删除一个包
              rpm -r xxx
       升级一个包
              rpm -Uvh xxx.rpm
       如果要安装的包中,有一个文件已经安装,进行替换安装
             rpm -ivh  xxx.rpm --replacefiles
       不管依赖关系,强行安装
             rpm -ivh xxx.rpm  --nodeps
       不管依赖关系,强行卸载
             rpm -e xxx --nodeps
       查找误删的文件
             rpm -Va
      查找一个软件包在系统中安装的所有文件
             rpm -qlp xxx.rpm
      列出已经安装的所有软件包
             rpm -qa
       查寻一个文件属于哪个包
             rpm -qf /路径/xxx
       编译一个src.rpm包
             rpmbuild --rebuild xxx.src.rpm
    8)Slackware (http://slack.linuxsir.org)
    9) Suse (偶没用过)
    10)Ubuntu
    上面所说的关于debian的apt和dpkg的东西,都完全适合ubuntu。只是现在国内的ubuntu源比较少,有上海交大的源,班图中文的源(在www.ubuntu.org.cn上,你将能获得更多信息)
    http://archive.ubuntu.org.cn/ubuntu/
    http://ubuntu.cn99.com/ubuntu/
    http://debian.okey.net/ubuntu/
    ftp://linux.xjtu.edu.cn/
    注意:上面的源的写法都不能直接添在/etc/apt/sources.list(是不是叫这个名?)中。

    注意:因为发行版和包管理工具的不同。发帖子求助时,最好能把发行版版本,并包管理工具和包管理工具的输出信息一并写上。

    注释:Linux全称应该是GNU/Linux,真正的linux只是GNU/Linux的内核,如vmlinuz-2.4.27-2-k7;GNU/Linux赖于起动的大多都是GNU软件或GPL兼容软件;Linux内核本身也是按照GNU的GPL许可证发布的。

    第一次写这种总结行的东西,欢迎拍砖。
  • 相关阅读:
    《新人口论》摘录
    中国历史上农村剩余劳动力的安置政策
    sql 善后处理的一些代码
    淘宝骗家实录
    什么决定着我们的工作
    【原创】打造具有EnableWindow功能的SPYXX
    文件被锁住删除不了的一种解决方法
    去除页面中所有的标记
    用动网论坛做BUG管理,感觉还不错
    同事刚告诉我一不错的东东VNN
  • 原文地址:https://www.cnblogs.com/zhihaowang/p/10128786.html
Copyright © 2011-2022 走看看