分享
 
 
 

FreeBSD连载(28):Packages Collection

王朝system·作者佚名  2006-11-23
窄屏简体版  字體: |||超大  

Packages CollectionFreeBSD中提供了上G字节大小的预编译并打好包的二进制应用软件包,这些软件包能够立即安装使用。在软件包中不但记录了二进制软件的内容,还包括这些软件的安装位置、软件包的描述信息,以及软件包之间的依赖关系,这种管理软件的机制称为Packages Collection。通常安装介质提供的这些Packages位于安装介质中的packages目录下,使用安装程序sysinstall就能够很容易的安装和卸载这些安装好的软件包。(由于空间的限制,安装光盘上并不能包括所有的软件包,可以从Internet下载,在Walnet Creek发布的FreeBSD光盘中的第三张也包括了大量预编译好的软件包)。

在FreeBSD下,每个预编译的软件包是使用tar和gzip进行打包压缩后的文件,其文件名中的前面为这个Package的名字(包括版本号),并使用tgz后缀,例如navigator浏览器的Package文件为netscape-navigator-4.07.tgz。。

使用root权限执行sysinstall,然后选择Configure菜单项中的Packages选项,系统将按不同的应用软件的类别,显示出相应的菜单选项,每个选项对应一类应用软件,其中All项中包括所有可用的应用软件

这些软件也被放置到安装介质中的packages目录下对应的不同存储子目录中,子目录和菜单选项是一一对应的。

# ls -l /cdrom/packages

All converters kde print x11

INDEX databases lang security x11-fonts

Latest deskutils mail shells x11-toolkits

archivers devel math sysutils x11-wm

audio editors misc tcl81

benchmarks emulators net textproc

chinese gnome news tk81

comms graphics perl5 www

如果进入了一个种类的子菜单,那么就可以看到,已经安装的软件有一个 “X” 标记,可使用空格键反选择这个已安装的软件,系统将立即卸载这个软件。或者选择一个未安装软件,然而此时并没有立即进行这个软件的安装,而是要等到全部选择了所有想要安装的软件包之后,再回到上级菜单,选择 “Install” 按钮才开始进行安装。

Packages的相互依赖关系

各个软件包之间并不是孤立的,而是在相互之间存在一定的依赖关系。例如,所有的X Window应用软件都在X Window下运行,那么如果没有安装X Window服务器软件,也不能正确安装这些应用软件。此外,Packages中也并不全是应用软件,它也包括各种函数库及其他种类的支持文件,那么有的应用软件包就依赖于这些库文件和支持文件。

由于存在各种相互依赖关系,必然对软件包的安装和卸载发生影响。当安装一个软件包时,FreeBSD将会首先安装这个软件包依赖的其他软件包,然后才能安装这个软件包本身。如果没有安装它所依赖的软件包,则就不能正常安装这个软件包本身。同时,当删除一个软件包时,必须预先删除依赖这个软件包的所有其他软件包,否则就不能正常完成删除任务。FreeBSD对这个依赖关系限制比较严格,即使是同一个软件,但版本不同,依赖于这个软件另一个版本的其他软件包也不能正确安装,必须保证版本的一致性。

使用Packages Collection来安装和管理应用软件,可以维持软件安装文件结构的一致性,因为Packages Collection安装的软件其文件目录结构符合FreeBSD的习惯,清晰明了。此外软件包之间的依赖关系对于同时维护多种软件也很有效,因此最好不要绕过Packages Collection手工安装软件。当需要重新定制软件的时候,可以通过Ports Collection来完成,它在编译好软件之后,可以使用软件包的方式安装和维护软件

每个软件包的安装信息被放置在/var/db/pkg目录下维护,这个目录下的每个子目录都对应于一个安装过的软件包,如果某个子目录被破坏,那么相应的软件包的信息就不复存在了。

管理Packages

虽然使用sysinstall来管理软件比较直观,但是这需要一个标准的安装介质,适合大量安装软件包时使用。而在不使用安装介质的时候,仅仅需要添加某个独立的软件包或进行维护时,sysinstall就不适合了。FreeBSD提供了十分简单的几个管理命令来完成这个任务。

pkg_add安装一个Package,其参数为要安装Package的文件名或获得这个文件的URL。当使用URL来指定Package的位置时,pkg_add首先使用fetch程序下载软件包,然后进行安装。通常可以使用 “-v” 参数,使pkg_add显示出进行的操作过程。

pkg_delete 删除一个软件包,其参数为软件包的名字,由于此时软件包已经被安装到系统中了,因此名字中不必使用tgz后缀。同样也可以使用 “-v” 参数。

pkg_info获取一个软件包的安装信息和简短描述,参数为软件包名字时,将参看当前已安装的软件包中是否存在它,当使用的参数为带tgz后缀的文件名时,将查看当前目录中是否存在这个软件包文件。或者可以使用-a参数列出当前安装的所有软件包的信息:

# pkg_add netscape-communicator-4.5.tgz

# pkg_delete netscape-communicator-4.5

但在实际应用的过程中,值得注意的问题常常发生在升级软件包时。由于同一软件的不同版本通常使用同样的文件名,因此在安装一个版本时将覆盖掉另一个版本的文件,但是同时新版本的Packages并不会自动删除老版本Packages的安装信息。因此如果再一次卸载旧版本时就会将新版本中具有同样文件名的文件删除掉。解决问题的方法是先卸载老版本,再安装版本的Packages。一旦出现问题,可以再次将新版本Packages重新安装一次即可。

未完,待续。。。

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有