QQ登录

只需一步,快速开始

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 23804|回复: 6

Linux程序安装方法(给新手看,特啰嗦)

[复制链接]
发表于 2005-11-26 17:14:57 | 显示全部楼层 |阅读模式
首先,纠正一个大家一个错误的观念,Linux(见注释)并不是简单的配置文件加命令,它还应包括以GPL为代表的“人人为我,我为人人”道德风尚(比如我们的版主义务为我们回答问题,向辛勤工作的版主们致敬!),这也是Linux在世界范围内迅猛发展的原因。关于GPL的详细内容见
http://www.linuxfans.org/nuke/mo ... pic&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 ... ic&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 ... sc&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许可证发布的。

第一次写这种总结行的东西,欢迎拍砖。
发表于 2005-11-26 17:53:20 | 显示全部楼层
谢谢斌斌哥哥
回复

使用道具 举报

发表于 2005-11-26 18:57:36 | 显示全部楼层
Opera浏览器是Opera Software出的,和Trolltech没有关系。

另外,把每个人培养成编译软件或者打包的高手,也没有这个必要。
回复

使用道具 举报

 楼主| 发表于 2005-11-27 02:53:19 | 显示全部楼层
谁说把每个人都培养成打包高手呢?只是有人发了patch,我们手上有源程序,一个命令,把patch用上不就完了。我们只是用,用得好了,跟周围的人讲一讲。哪里是要自己改源码?
如果,打包高手,也只是会用个命令,把patch作用到源文件上,那当高手,也太简单了吧。
另外,Opera Software和Trolltech自古就没关系吗?
回复

使用道具 举报

发表于 2006-7-28 09:45:18 | 显示全部楼层
Acquire::ftp:roxy "ftp://user:pass@ip:1080"; (socks proxy)

好像不支持的,有点误导
回复

使用道具 举报

发表于 2006-7-28 12:22:46 | 显示全部楼层
支持
进来很少见到binbindatou了呀
回复

使用道具 举报

发表于 2006-7-29 09:07:05 | 显示全部楼层
写得很好,支持!
回复

使用道具 举报

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

本版积分规则

GMT+8, 2024-11-14 19:05 , Processed in 0.088910 second(s), 15 queries .

© 2021 Powered by Discuz! X3.5.

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