Ubuntu 12.04 软件管理

article/2025/9/22 20:02:58

相比于Windows下需要去不同软件供应商的网站上下载安装软件的繁琐,Ubuntu提供了非常简洁有效的软件管理方法。我们先来了解下在Ubuntu环境下对软件以及其他系统资源的管理方案。

1Ubuntu软件中心

Ubuntu软件中心是Ubuntu环境下管理软件安装卸载的一个简便易用的图形界面。在Dash主页->应用程序->Ubuntu软件中心或者桌面左侧导航栏可以找到它。Ubuntu软件中心的名字为software-center,也就是说你在终端输入software-center可以打开它。当你系统没有默认安装Ubuntu软件中心时,你可以通过命令行sudo apt-get install software-center来下载安装它。

在界面的上面一行,有三个选项:所有软件,已安装软件和历史。并且有一个搜索栏可帮助你输入关键字搜索你想要安装的软件。安装新的软件非常简单:找到你要安装的软件,双击,然后点击安装(Install)按钮。卸载软件也非常简单,在“已安装”中找到你已经安装过的软件,点击卸载(Remove)按钮。




2)使用Synaptic进行软件管理

Ubuntu的安装卸载按钮非常简单易用。但是有的时候,当你需要安装某个类库,或者是你希望重新配置你的安装系统。你需要用到Synaptic软件。你可以通过Ubuntu软件管理中心来安装Synaptic应用程序。安装过后你可以在应用程序中找到这个软件,在中文的Ubuntu操作系统中,这个应用程序叫做“新立德软件包管理器”。


3)保持Ubuntu系统和软件的更新

通过更新管理器,检查最近更新,并选择安装更新即可。

4)用命令行实现软件管理

sudo apt-get update

这个命令使用APTAdvanced Package Tool) 连接你所配置的服务器,并下文件更新的列表。

sudo apt-get upgrade

APT扫描你电脑上安装的软件并与最新软件版本进行比较,返回比较结果。并询问你是否希望继续执行。

选择y,将会安装更新。

apt-get upgrade命令只对软件进行更新,并不会安装新的软件或者卸载软件。有的时候,使用apt-get upgrade命令,结果现实“0not upgraded”状态。通常这种情况意味着你需要安装或者卸载一些软件从而能满足更新软件包的依赖性。

你可以使用以下命令完成这个任务

sudo apt-get dist-upgrade

这条命令也可以使你从Ubuntu的一个版本升级到另一个版本。它会自动删除过时的软件包。

apt-get upgradeapt-get dist-upgrade是安装更新的命令。安装软件的命令为apt-get install。比如你想安装MySQL数据库服务器。你可以使用以下命令:

sudo apt-get install mysql-server

APT会自动安装MySQL及其依赖的组件。

卸载已经安装的程序的命令行为:

sudo apt-get remove firebox

需要注意的是,apt-get在删除你选择的软件的同时也会删除其他依赖于这个软件包的程序,因此要尤为小心。apt-getremove在卸载软件的时候,保留了相关的配置信息,这样你重新安装软件的时候不需要再重新配置。

另外一种完全卸载软件的方法是apt-get remove --purge,不保留配置信息。

sudo apt-get remove --purge firefox


APT维护了一个软件包缓存,其中存储了已经下载和安装了的DEB文件。通常在目录/var/cache/apt/archives中。你可以通过命令apt-get clean删除所有缓存的DEB文件,或者通过apt-get autoclean,会删除较老的DEB文件,保存较新的DEB文件。


查找软件

在如此多的软件中,想找到你要的软件并不是易事。apt-cache是一个用来查找的搜索工具。比如你可以使用命令

apt-cache search kde

终端会返回无数个软件包,大部分软件包的名字中甚至不包括kde,仅仅是软件描述中的某些单词中包含了kde的组合。你可以有以下几种细化搜索结果的方法。

通过-n使得搜索范围只包括软件包的名字,而不包括软件包的描述信息。

apt-cache -n search kde

搜索结果得到了进一步的细化。可能从几千个结果减少到几百个结果。

另外一种方法是使用一些规范表达式来达到细化搜索结果的效果。比如”^“意味着开始,”$“意味着结束。比如你想搜索以kde打头的软件包,你可以使用以下命令:

apt-cache -n search ^kde

apt-cachegrep的结合,更方便于查找相应的软件包。比如,如果你想查找所有与游戏相关的kde的软件包,你可以使用以下命令:

apt-cache search games | grep kde

结果如下:


用源码编译得到软件包

你可以编译Ubuntu软件中心的源码,也可以编译其他组织或个人提供的源码,他们可能没被包含在Ubuntu软件中心。在编译源码之前,你要确保你的系统中有相应的编译工具。通常情况下,你需要以下三个工具,build-essentialautomakecheckinstall。你可以通过apt-get命令安装这三个编译工具:

sudo apt-get install build-essential

sudo apt-get install automake

sudo apt-get install checkinstall

大部分非Ubuntu软件库中的源文件格式是tar balls格式,也就是使用gzip或者bzip压缩的tar文件。这是一个非常好的习惯,压缩后的文件可以防止破坏。

首先在home目录下新建一个目录叫做source

cd..

sudo mkdir source

可以把下载到的源代码解压用-C解压到~/home目录下。

sudo tar zxvf packagename.tgz -C ~/source

sudo tar zxvf packagename.tar.gz -C ~/source

sudo tar jxvf packagename.bz -C ~/source

sudo tar jxvf packagename.tar.bz2 -C ~/source

如果你不清楚压缩包所采用的压缩方法,可以通过file命令来查看:

file packagename


然后修改目录到~/source/packagename,寻找其中的READMEINSTALL的文件。通常这些文件中都包含了如何编译安装这个软件的指导信息。编译源码的命令为:

sudo ./configure

这个命令是检查下是否所有的文件配置都正常,编译环境是否正常。如果你缺少某个依赖项,configure脚本会告诉你缺少的是什么。

configure脚本配置成功后,通过以下命令行编译软件。

sudo make

最后,使用以下命令

sudo make install

如果编译失败了,检查下错误信息。记得再下次编译前,使用以下命令

sudo make clean

你可以通过以下命令卸载软件

sudo make uninstall



http://chatgpt.dhexx.cn/article/pXN4sBkO.shtml

相关文章

Ubuntu server安装ubuntu桌面,安装软件中心-ubuntu software

目录 安装ubuntu桌面 1、 使用ssh工具链接(堡塔远程工具) 2、切换root 3、更新软件和系统 4、安装桌面 5、桌面登陆​编辑 6、安装商店 7、设置中文 8、删除多余软件 9、网络图标消失? 10、挂载nfs 不管什么都要遵守能量守恒,图形…

Ubuntu系统实用软件推荐

为了了解深度学习,在电脑上装了Ubuntu16.04,前前后后捣鼓了两个多月,安装了一些实用软件,终于使得Ubuntu用起来更加顺手。 1.首先想到的是自己常用的Windows软件有没有Linux版本的,查了一下,以下软件还挺良…

Ubuntu 20.04软件中心问题

Ubuntu 20.04软件中心问题 Ubuntu 20.04装好后, 软件中心不显示软件解决办法: Terminal终端执行: sudo apt update sudo apt upgrade sudo systemctl reboot Ubuntu 20.04 默认把软件中心换成了 snap, 感觉 snap 应用老出状况, snap 应用不…

JavaScript 30 JavaScript 日期格式

JavaScript 文章目录 JavaScript30 JavaScript 日期格式30.1 JavaScript 日期输出30.2 JavaScript ISO 日期30.3 ISO 日期(年和月)30.4 ISO 日期(只有年)30.5 ISO 日期(完整的日期加时、分和秒)30.6 时区30…

js 日期计算

1.计算当前日期的后一天 1 var now new Date(); 2 now.setDate(now.getDate() 1); 3 console.log(now);//VM153:3 Thu Sep 28 2017 09:26:05 GMT0800 (中国标准时间) 2.已知开始日期和天数,计算结束日期 var str 2016-06-27; //定义开始日期 var startDate…

JavaScript 日期对象

我们今天就来学习一下JavaScript 日期对象,我们这个日期对象主要可以用于获取到当前时间,或者未来某天时间,还有时间戳计算。 下面就跟我来学习吧。 一、日期对象Date Date对象:这个Date是一个内建对象,在JS中使用…

JavaScript日期相关计算

一、计算距离今天n天后或n天前的日期 首先定义两个公共的方法:月份日期数字转换;格式化日期形式(默认:年-月-日) // 数字转换 changeNum (num) {if (num > 10) {return num} else {return 0 num} }, // 格式化日期 formatDate (date) {…

JS比较日期

这里,date1和date2看上去是一样的,但是运行 date1 date2 返回的却是false。这是因为date1、date2都是对象,类型为引用类型,所以如果需要比较他们,需要去比较他们的字面量值,而不是单纯的用 来比较。 var…

C语言:数组和for循环

数组: 分为:1 数组,2 数组的数组; 数组的数组: 数组符号:[ ] 和数组是没有关系的。 *(pi) p[i]; p[i]可以写成i[p]; 下面是我去年写的,这个笔记是梳理整合 所谓数组为2的有3个就是把内存好比为…

es6数组循环

先说说es5的循环,一下几种循环的前五种接收的参数是一样的,都是两个参数: 第一个参数:循环里面执行的回调函数,循环调用执行的语句 第二个参数:this的指向 循环中回调函数的参数有三个: 第一个参…

数组实现循环队列

循环队列 在实际使用队列时,为了使队列空间能重复使用,往往对队列的使用方法稍加改进:无论插入或删除,一旦rear指针增1或front指针增1 时超出了所分配的队列空间,就让它指向这片连续空间的起始位置。可以解决假溢出问题…

竞赛:图解循环数组--借助循环数组进行队列的模拟实现以及循环数组的理解讲解

文章目录 队列的模拟实现队列是什么实现过程实现原理具体代码实现 循环数组循环数组是什么?循环数组如何实现队列?实现原理 总结 队列的模拟实现 队列是什么 队列是一种数据结构,遵循的是先进先出,后进后出的原则,基…

循环数组、对象的方法(超实用)

(前言:每一个方法我都会举例说明,为了避免混淆,所有方法例子中都使用同一个数组arr和对象obj;另外,由于 forEach太low,every太不常用,所以直接略过) 1. for in &#x…

循环数组 及 实现

数组 是一种 线性结构, 在内存中是一段 连续的内存 存储空间存储。 那么 如何实现循环的数组呢? 什么是循环数组? 循环数组 就是 数组的头尾是相连的。 假如有一个数组 [3,7,2,9,1,5] , 形成的环形数组 如下图: 用代码实现&am…

js数组转换为数组对象

let arr ["刘备","关羽","张飞","赵云","马超","黄忠"]; let obj {}; // 将数组转化为对象 for (let key in arr) {obj[key] arr[key];}; let newObj Object.keys(obj).map(val > ({label: obj[val],value…

js 数组转对象方法

记录将数组转成对象方法 let array [1,2,3,4,5]; let obj {}; obj Object.assign({}, array) console.log(obj); // {1,2,3,4,5}

js数组添加对象

一般业务都会有在数组里添加对象属性的需求 以下列出几种常见的添加对象的方法供大家参考 一、最常见的方法:push(尾部添加) 业务场景 arr [{num:1},{num:2},{num:3}];newArr arr.push({num:4})console.log(arr) 结果: 二、…

js 多维数组/对象转一维数组对象

多维对象转数组: let objTree {name: 河南,children: {name: 洛阳,children: {name: 洛宁,children: {name: 兴华,},},},}function toList(obj, listre) {for (let key in obj) {if (typeof obj[key] object) {console.log(是对象, obj[key])toList(obj[key], li…

jQuery数组对象转javascript数组

当我们在前端开发中,使用了jQuery时,我们通常通过$(".box-item")的方式获取的是一个jQuery对象是一个类数组对象,当我们需要向后台传输的数据中,使用的是javascript数组,或者有时候,我们需要将jQ…

js 三维数组转对象数组 二维数组转对象数组

1. 三维数组转对象数组 输出: 代码如下: let dataArr [[[109.654541015625, 29.34387539941801],[110.467529296875, 59.34387539941801],[109.654541015625, 30.050076521698735],],]let list []dataArr[0].forEach(item > {let obj {lon: item[0…