当我们使用linux一段时间以后,自然不会满足总是在没有任何变化的系统中工作,而是渴望能象在windows系统中一样,不断对自己的linux进行升级。另一方面,linux本身就是一个开放的系统,每天都会有新的软件出现,linux发行套件和内核也在不断更新。在这样的情况下,学会对linux (包括系统本身和各种软件)进行升级就显得非常迫切了。
在Linux环境下,升级的对象可以是一般的软件,可以是编译器,也可以是系统的内核,甚至是系统本身。下面,虫虫就分别讲讲对不同对象的升级的方法。
1. 升级一般软件
一般来说,升级应用软件是比较简单的,因为你不用太在意升级后对其他软件的影响(如果是升级系统,情况就不一样了)。首先,你必须找到希望升级软件的新版本。你可以在linux的专门站点上寻找自己中意的软件。然后就是使用各种下载工具将软件下载到指定的目录中。下载的软件大部分是以tar打包的gzip 压缩文件。
在处理这些软件之前最好使用tar tvf 或 tar ztvf 命令看看下载来的文件中包含了一些什么文件。因为得到的软件可能是二进制文件也可能是源码,使用上述的命令可以看看究竟是哪一中文件。
如果是二进制文件,一般可以直接将包打开,然后删除相应的老文件就可以了。
如果是源文件则要留心包里面是否有帮助和安装文件(readme / install / help)等等。然后将软件打开到指定的目录中去,仔细看看帮助和安装文件中的提示和安装约定,再进行安装工作。这时,安装工作意味着要对源代码进行编译。首先要对makefile文件进行修改,修改的内容和修改的方法在软件包中的相关文件中往往可以找到,另外有的时候软件包里会包含一个shell 程序configure, 执行它可以省不少时间。对makefile文件处理完以后,就可以使用make命令来编译指定的文件。最后用make install 命令将软件安装到自己的计算机上。
2. 升级编译器
我们可以先看看自己当前的gcc版本 gcc -v 然后决定是否要进行升级。当我们需要对自己gcc、连接器、汇编器以及各种头文件和函数库进行升级的时候,我们就可以到相关站点上获取对应的软件包,然后在指定目录下打开,同时删除(覆盖)原来的老文件就可以了。
3. 升级函数库
因为升级后要重新指定库的连接,所以升级函数库是比较麻烦的。我们知道,linux系统的库文件分为档案库和共享库两种类型。档案库的文件一般是 libx.a,而共享库的文件一般是libx.so.version. 升级函数库时必须使用新的版本的.a 和 .so.version文件替换老版本的对应文件。对.a文件来说非常容易,只要将新的文件拷进指定的目录,覆盖原有的文件就可以了。但是我们对共享库进行操作的时候就要特别小心了。决不能简单地将新文件拷到一个目录下,然后删除旧的文件。因为有可能旧的函数库正在为某个程序所使用。我们必须保证每一个程序都能够正确地找到共享库。简单地讲,当我们将新版本的共享库文件放到指定目录下以后,使用ln命令来完成:
ln -sf /usr/lib/libdb.so.new("new"指新的版本号) /usr/lib/libdb.so.old("old"是原有的文件)
比如
/usr/lib/libdb.so.2 原来指向的文件是/usr/lib/libdb.so.2.0.1,现在有一个新文件/usr/lib/libdb.so.2.78.1,我们可以这样处理:
ln -sf /usr/lib/libdb.so.2.78.1 /usr/lib/libdb.so.2
然后,我们才能将/usr/lib/libdb.so.2.0.1文件进行删除。
4. 系统升级
最简单的升级方法当然是。。。。。。一张cd-rom里就可以将整个系统完全包括了。当然,这样的升级方法比较费事,同时,每一次升级都意味着原来的文件有可能丢失,因此,完全没有必要总是将系统重新安装一次。每一个linux发行套件其实都有记录升级情况的文件。比如slackware中有一个 changelog.txt文件,按时间顺序记录了slackware的更新状况。而在redhat中则是/redhat- 4.2/updates/00readme.errata.我们可以从这些文件中看出是不是需要进行升级。然后找到相应部分的软件包,使用
installpkg filename 或者
rpm -U filename 来将软件包安装在计算机上。
linux有一定水平者可以参考下,初学者了解即可
linux系统和应用程序升级方法
时间: 2024-10-22 05:08:28
linux系统和应用程序升级方法的相关文章
虚拟机上在Linux系统中安装JDK的方法
1. mkdir /soft (创建一个目录,用于存放安装软件 ) 2. cd /soft (切换到soft目录 ) 3. rz(从windows中选择安装包) 4.rmp -ivh jdk-7u45-linux-x64.rpm (安装JDK) 5.find / -name 'jdk' 6.vi /etc/profile (编辑环境变量) 在profile的最后写下面的地址 export JAVA_HOME=/usr/java/jdk1.7.0_45ex
Ubuntu等Linux系统清除DNS缓存的方法
buntu等Linux系统清除DNS缓存的方法 直接说方法: 如果系统下有nscd,那么就直接 sudo /etc/init.d/nscd restart 如果没有也没关系,网上接受的方法大都是 sudo aptitude install nscd sudo /etc/init.d/nscd restart 其实我们也可以直接 sudo /etc/init.d/dns-clean start 来完成的.
在Linux系统如何让程序开机时自动启动
核心提示:系统的服务在开机时一般都可以自动启动,那在linux系统下如果想要程序在开机时自动启动怎么办?我们知道在 windows系统"开始"-->"所有程序"-->"启动"里面放个快捷方式就行,那Linux系统下呢?...系统的服务在开机时一般都可以自动启动,那在linux系统下如果想要程序在开机时自动启动怎么办?我们知道在 windows系统"开始"-->"所有程序"-->&qu
如何选择合适的Linux系统进行桌面程序开发?
32 or 64 ? 众所周知,64位的Windows系统可以近乎完美地运行32位的应用程序,微软出于商业考虑做了这样一个兼容层.而Linux系统则划分的很清楚,默认情况下64位的Linux系统无法运行32位的应用程序.但是Linux又是一个高度可定制的系统,通过安装一些库或者其它的配置方法可以让64位的系统运行32位的应用程序. 现实情况是针对于Linux系统开发的应用程序大都提供了两个版本,32位的和64位的. 可以选择针对32位和64位系统分别开发程序(两份代码),也可以选择开发一份代码,
学习Linux系统中命令的简单方法
如果说如何快速学习.了解Linux的话,我的答案是学命令.背命令!为何呢?对于一名新手来说,去学习Linux的思想.了解Linux的架构.明白Linux中"一切皆文件"概念虽然说是没有错,是对的.但是个人认为去学习这些"高大上"的东西不是一时半会的事儿,它需要一定的时间和经验去沉淀才能掌握.那么如何最快速了解Linux并使用呢?我依然觉得学命令.背命令,掌握命令是比较笨但却是比较快的方式. 我开始学习Linux的时候,问了前辈:我入门Linux需要掌握哪些命令呢?前
Linux系统 误删除kvm虚拟机数据恢复方法-数据恢复成功案例
一.虚拟机故障环境描述客户的物理机器操作系统为Linux系统,文件系统为EXT4文件系统.其上的KVM虚拟机被删除,每台虚拟机包含一个qcow2格式的磁盘文件,和一个大小约为1.2T的raw格式的磁盘文件,主要需恢复raw格式的磁盘文件.客户已自行备份. 虚拟机1:主数据库服务器虚拟磁盘:10G系统盘(qcow2)+1.2T数据盘(raw,主要恢复)文件系统:EXT4主要数据:MySQL数据库 虚拟机2:备份数据库服务器虚拟磁盘:10G系统盘(qcow2)+1.2T数据盘(raw,主要恢复)文件
linux系统增加swap容量的方法
在安装linux系统时,初始设置的swap空间实际使用中不够用,需要增加swap空间: 下面所有的操作需要root用户权限: 增加swap容量步骤: 1.建立一个分区,使用dd命令 dd if=/dev/zero of=/home/swap bs=1024 count=10240000 会创建 /home/swap 一个分区文件.文件大小是10240000个block,bs为1个block的大小为1k,这里创建10G大小的swap: # ll /home/swap -rw-r--r-- 1 ro
linux系统NFS服务端配置方法
1.修改 /etc/exports,增加共享目录 /var/upload 172.16.101.63(rw) 2.启动与停止NFS服务 /etc/rc.d/init.d/portmap start (在REDHAT中PORTMAP是默认启动的) /etc/rc.d/init.d/nfs start 启动NFS服务 /etc/rc.d/init.d/nfs stop 停止NFS服务 3.linux客户端挂接(mount)其他linux系统或UNIX系统的NFS共享 # mkdir –p /var/
搜索所有硬盘分区上的linux系统,重新安装grub的方法
电脑硬盘上(非vmware)安装了Ubuntu.Fedora.Debian.openSUSE.linuxMint.Mageia.elementaryOS.PearOS.ZorinOS.Bodhi.Manjaro.Sparky.linuxDeepin等13个linux发行版,撸linux的万里长征终于迈出了第一步!但是问题来了,我喜欢ZorinOS的grub启动图形界面,可是被最后安装的PearOS丑陋文本界面给覆盖了,怎么办?撸了很长时间,一直没有满意的答案.今天不小心给ZorinOS安装了kd