ubuntu api(Ubuntu24.04)
大家好,今天来为大家解答ubuntu api这个问题的一些问题点,包括Ubuntu24.04也一样很多人还不知道,因此呢,今天就来为大家分析分析,现在让我们一起来看看吧!如果解决了您的问题,还望您关注下本站哦,谢谢~
为什么Ubuntu 要自己搞snap格式而不是f
为什麼 Ubuntu要在这个时候大张旗鼓推这个。
在操作系统领域几十年来经久未变的一点是,操作系统本身不重要,重要的是能跑在其上的应用程序,现在的话说是生态环境。而应用程序不是针对操作系统本身撰写,应用程序是针对操作系统提供的API/SDK撰写,换句话说,掌握了API/SDK的控制权,就掌握了最宝贵的应用程序开发者,操作系统本身就得以长久发展。这就是为什麼 Windows远比 Mac卖得好的道理,Windows掌握着桌面操作系统裏最稳定的SDK,几十年来保持兼容性未曾变过,而 Mac时常破坏 API兼容性使得老程序不能再跑在新系统上。这个道理 How Microsoft Lost the API War这篇文章阐述得非常明白。
GNU/Linux乃至整个 FOSS社区,在这一点上,其实非常另类。 GNU系统从来没有把「保持程序兼容性以吸引用户和开发者」放在首要目标,GNU的首要目标是「给用户以自由」。那麼 GNU/Linux的应用程序兼容性不好麼?并不见得,几十年前的 ed/vi/xterm程序现在还好好得跑在各大发行版上,一些程序比 Windows上的软件还要古老很多。但是这并不是 GNU/Linux和各大发行版致力於保护兼容性的结果,而是这些软件「自由」的结果。因为他们自由且开源,发行版维护者们可以拿他们的源代码重新编译以利用新的软件库新的 ABI;因为他们自由而且开源,上游维护者可以不断更新他们的代码让他们适应新的技术新的框架新的 API;因为他们自由而且开源,当上游开发者放弃项目不再开发的时候,还会有有志之士挺身而出接替开发维护的职责。换句话说,在 Linux发行版上,软件的兼容性好是软件自由的直接结果。
这就是现在 GNU/Linux发行版们打包软件发布软件的模式,大家努力的目标是给予用户自由。这一模式在自由开源软件上非常有效,但是面对闭源软件就不那麼有效了。闭源软件的源代码在开发者手上,没有发行版打包者做衔接工作,所以闭源软件在 GNU/Linux上发布起来非常困难。软件的自由,除了乾净放心保证隐私外对普通用户来说没有立竿见影的优势,只对软件开发者们有意义,所以 GNU/Linux发行版一直是程序员的天堂,用户的地狱。
而 Ubuntu作为一个发行版,并没有共享传统发行版的自由精神。从一开始,Ubuntu努力的首要目标就不是给用户自由,而是扩大普通用户的基数。Ubuntu看到,对普通用户而言,闭源软件尤其是商业软件同等重要甚至可能更重要,普通用户宁愿忍受不自由,宁愿放弃隐私放弃控制权,也不愿使用那些表面粗质功能匮乏的开源替代。所以 Ubuntu需要打破传统发行版的发布方式,让商业闭源软件也能在 GNU/Linux上轻松发布。
而且这条路的可行性早就验证过了。Google通过给 Linux内核上包装一层 Apache协议的「自由性中立」的 userland层,禁锢住了 GPL的病毒传播性,开发出 Android系统,发展出 Android之上的生态环境,吸引到了无数开发者为其平台写(大部分闭源)软件。另一点 Valve通过 Steam作为兼容层,附带大量依赖库并保持 API足够稳定,同时充当游戏开发者和 Steam兼容层之间的桥梁,也顺利地招揽到不少游戏开发商为 Steam移植 Linux平台游戏。这两个先例都启迪 Ubuntu,这件事可以做并且可以做好。
并且现在做 Snap对 Ubuntu有一个重大的好处,在於垄断 SDK控制权。Snap架空了发行版提供的包管理器,甚至架空了发行版本身(提供的依赖库),从而对开发者而言,针对 Snap提供软件包就不需要考虑发行版(这是好事)。如果 Snap受到足够多的开发者支持,发展出成熟的生态,那麼 Ubuntu也就不再发愁今后的推广之路了,因为 Ubuntu上的 Snap支持必然比别的发行版要好。目前 Snap上发布或者安装软件包需要 Ubuntu One身份认证,属於中央化的 App Store模式,这给予 Ubuntu最直接的控制权(而不是 Ubuntu宣称的把控制权从发行版交还给开发者),到时候 Ubuntu携应用以令用户,用户并没有选择的权利和自由。另一点,Ubuntu要做手机系统做IoT系统,面向的用户群就是 Android/iOS的用户群,这样的用户群下,用自由开源的生态在短期内显然难以抗衡,所以必须引入商业生态,从而提供类似的软件商店也是 Ubuntu的必由之路。
如何快速地安装Ubuntu SDK
1)安装Ubuntu SDK
首先,我们可以安装好我们的Ubuntu桌面系统.我们一般推荐安装最新的Ubuntu桌面系统,比如目前即将面世的16.04 LTS版本.如果已经有一个Ubuntu桌面系统,我们可以它通过如下的命令来升级我们的桌面系统到最新的系统:
[html] view plain copy
$ update-manager-d
依照现有的文章"Ubuntu SDK安装"中介绍的那样,安装最新的Ubuntu SDK.
[html] view plain copy
$sudo apt-get update
$sudo apt-get upgrade
$sudo apt-get dist-upgrade
$sudo add-apt-repository ppa:ubuntu-sdk-team/ppa
$sudo apt-get install ubuntu-sdk
$sudo apt-get install ubuntu-sdk-dev ubuntu-sdk-ide
$sudo apt update&& sudo apt dist-upgrade
在上面的先开始的命令中,我们先把我们的Ubuntu桌面系统更新到最新的状态,这样使得我们的最新的SDK依赖的包都被安装到系统中以使得后面的SDK的安装能够顺利进行.否侧在我们的实际安装中,如果有的包不在系统中或是最新的,那么后面SDK的安装可能失败.
在这个步骤中,由于我们使用了ppa,所有它可以支持断点续传.如果失败了,它可以在下次安装时再次从上次中断的地方继续下载安装.一般来说我们并不担心这一步的失败.对于有些开发者来说,可以尝试使用VPN的方法来提高安装的速度.成功安装后,我们可以在dash中找到我们所需要的Ubuntu SDK
对于网路情况不是很好的开发者来说,请直接跳到下面的第三节下载已经成功安装过的chroots来安装而不需要下面的第二步.
2)安装chroots
在这个步骤中,由于它不支持断点续传,所有它是最容易导致安装失败的环节.如果我们的网路情况好的话,我们可以直接在我们的命令行中打入下面的命令来安装我们的chroots.在这个步骤中,我们可以来安装我们所需要版本的chroots.我们可以通过如下的方式找到我们手机所有支持的framework:
[html] view plain copy
liuxg@liuxg:~$ adb shell
phablet@ubuntu-phablet:~$ click framework list
一般来说在我们开发时,会选择我们所需要的framework(相当于iOS的版本).如果我们所定义的framework在手机中不存在,那么我的应用在手机中将不能被运行.目前我们建议使用15.04的chroots.
- armhf chroot的安装
我们可以通过如下的命令来安装我们的armhf chroot:
[html] view plain copy
$sudo click chroot-aarmhf-f ubuntu-sdk-15.04 create
如果安装失败,我们必须使用如下的命令删除已经安装的半成品,然后再用上面的命令来安装我们的chroot.
[html] view plain copy
$sudo click chroot-a armhf-f ubuntu-sdk-15.04 destroy
- i386 chroot的安装
我们可以通过如下的命令来安装我们的armhf chroot:
[html] view plain copy
$sudo click chroot-ai386-f ubuntu-sdk-15.04 create
如果安装失败,我们必须使用如下的命令删除已经安装的半成品,然后再用上面的命令来安装我们的chroot.
[html] view plain copy
$sudo click chroot-a i386-f ubuntu-sdk-15.04 destroy
3)直接下载已有的chroots进行安装
在实际的安装中,我发现有很多的开发者在进行上面的安装时由于网路的原因而导致上面的安装不能成功.基于这个原因,我们把我已经成功安装过的chroots上传到我们的百度网盘供大家下载.等下载完后,我们再把它们解压到我们所需要的路径中.这样的安装好处是,我们可以使用各种方法进行断点下载我们打包过的chroots,并成功拷贝到相应的目录中.这个方法的缺点是:chroots可能不是最新的.开发者在以后的SDK中可以进行自动更新或手动更新我们的chroots.不过一般来说,这个chroots已经够用即使在不更新的情况下.
删除任何已经安装或安装不成功的chroots
我们可以通过上一节中介绍的方法来删除曾经没有安装成功的chroots以保证我们有干净的安装环境:
[html] view plain copy
$sudo click chroot-a armhf-f ubuntu-sdk-15.04 destroy
$sudo click chroot-a i386-f ubuntu-sdk-15.04 destroy
通过上面的方法,我们确保在我们的桌面系统中没有任何我们曾经安装失败后残存的chroots文件.
下载我们上传的chroots
开发者可以到我们的网址下载我们已经上传的chroots.这个chroots是到上传时间最新的chroot.对于绝大多数的应用开发应该是没有任何问题的.当然开发者可以在以后的SDK中进行更新.
就如同我们上面显示的那样.在我们上次的chroots中,有两部分文件.
- chroot.d:
这个是需要安装到/etc/schroot/chroot.d目录中的文件.安装后的文件架构是:
[html] view plain copy
liuxg@liuxg:/etc/schroot/chroot.d$ tree
.
├── click-ubuntu-sdk-15.04-armhf
└── click-ubuntu-sdk-15.04-i386
在实际的拷贝中,我们需要使用sudo来拷贝的方法这两个文件.这里的liuxg是我自己的电脑liuxg上用户名.在你们自己安装时,这个名字应该是你们自己的用户名.打开这个两个文件,同样我们需要使用sudo来编辑这两个文件,比如click-ubuntu-sdk-15.04-armhf:
[html] view plain copy
[click-ubuntu-sdk-15.04-armhf]
description=Build chroot for click packages on armhf
users=root,liuxg
root-users=root,liuxg
source-root-users=root,liuxg
type=directory
profile=default
setup.fstab=click/fstab
# Not protocols or services see
# debian bug 557730
setup.nssdatabases=sbuild/nssdatabases
union-type=overlayfs
directory=/var/lib/schroot/chroots/click-ubuntu-sdk-15.04-armhf
我们可以使用vi或gedit来编辑上面的文件.替换上面的"liuxg"为自己电脑上的用户名.然后存下来.我们使用同样的方法来对click-ubuntu-sdk-15.04-i386进行同样的操作.
- chroots.tar.gz
我们把这个文件拷贝到/var/lib/schroot/目录,然后我们通过如下的方法来解压缩:
[html] view plain copy
liuxg@liuxg:/var/lib/schroot/chroots$ sudo tar-xvf chroots.tar.gz
解药缩后的文件架构为:
[html] view plain copy
liuxg@liuxg:/var/lib/schroot/chroots$ tree-L 1
.
├── click-ubuntu-sdk-15.04-armhf
└── click-ubuntu-sdk-15.04-i386
同样上面的"liuxg"是我自己的用户名.在实际应用中,它应该是你自己电脑上的用户名.
-检查我们已经安装好的chroots
我们可以通过如下的方法来检查我们的chroots的安装是否已经成功:
[html] view plain copy
liuxg@liuxg:~$ schroot-l
chroot:click-ubuntu-sdk-15.04-armhf
chroot:click-ubuntu-sdk-15.04-i386
source:click-ubuntu-sdk-15.04-armhf
source:click-ubuntu-sdk-15.04-i386
如果我们已经看到上面的显示,表明我们的安装已经是成功的.
-打开我们的Ubuntu SDK来检查我们的chroots
在SDK中,我们怎么来检查我们已经安装过的chroots是否已经成功呢?我们首先打开我们的SDK,然后点击菜单:
Tools==> Options==> Ubuntu==>Click
如果我们已经看到我们的chroot已经在上面所示的图片中,表明我们的chroot是已经安装成功的.我们可以点击上面的Update来更新我们的chroots到最新状态.当然我们也可以点击Maintain来添加或删除我们所需要的模块或库.
4)最后一招
如果上面的所有方法都已经试过了,还是不可以的话,可以在地址下载debian文件进行安装.需要安装的文件在页面的最下面.目前使用于16.04 LTS的desktop系统.
ubuntu-sdk-api-15.04-armhf_15.04-20160122~0ubuntu1~0xenial1_amd64.deb(573.6 MiB)
ubuntu-sdk-api-15.04-i386_15.04-20160122~0ubuntu1~0xenial1_amd64.deb(448.8 MiB)
ubuntu-sdk-api-tools_15.04-20160122~0ubuntu1~0xenial1_all.deb(10.9 KiB)
如果大家还是有困难下载上面的文件,我们已经把它们放到我们的百度云上面了.请在百度云盘里下载.在安装我们上面的文件时,我们必须按照上面的方法先删除我们先前安装过的文件。我们可以使用如下的命令:
[html] view plain copy
$sudo click chroot-a armhf-f ubuntu-sdk-15.04 destroy
$sudo click chroot-a i386-f ubuntu-sdk-15.04 destroy
然后通过如下的命令:
[html] view plain copy
$ sudo dpkg-i ubuntu-sdk-api-15.04-i386_15.04-20160122-0ubuntu1-0xenial1_amd64
$ sudo dpkg-i ubuntu-sdk-api-tools_15.04-20160122-0ubuntu1-0xenial1_all.deb
$ sudo dpkg-i ubuntu-sdk-api-15.04-armhf_15.04-20160122-0ubuntu1-0xenial1_amd64.deb
当然,我们也可以直接通过点击已经下载的.deb文件,并通过系统的"Ubuntu Software"应用来帮我们进行安装.等安装完后,我们也可以通过命令行来查看是否已经安装好了:
[html] view plain copy
$ schroot-l
我们也可以在我们的SDK的界面中进行更新的操作.当然这依赖于我们的网路速度:)
ubuntu卸载软件命令Ubuntu卸载软件的几种方法
前言
本文重点介绍Ubuntu卸载软件的4种方法。他们分别是图形化界面的synaptic、自动解决依赖关系的apt-get,处理依赖关系更强大的aptitude,还有安装本地deb包的dpkg。
方法一: Ubuntu使用synaptic图形化界面管理软件
oucanrong@zcwyou:~$ sudo apt-get install synaptic-y以下是使用Synaptic管理软件的教程。
打开Synaptic
输入当前用户密码
输入当前用户密码
右键选择安装或卸载等软件管理目标
右键选择安装或卸载等软件管理目标
方法二: Ubuntu使用apt-get卸载软件
apt会自动解决和安装模块的依赖关系,于Redat系统的yum命令类似,并且会查询软件仓库,但不会安装本地的deb文件, apt是建立在dpkg之上的软件管理工具。
卸载一个已安装的软件包(保留配置文件)
sudo apt-get remove xxxx卸载一个已安装的软件包(删除配置文件)
sudo apt-get-purge remove xxxx清除/var/cache/apt/archives目录里的缓存包
sudo apt-get clean清除/var/cache/apt/archives目录,只清理过时的包
sudo apt-get autoclean删除软件包及配置文件
sudo apt-get remove xxx--purge删除不再需要的软件包
sudo apt-get autoremove-y注:aptitude没有,它会自动解决这件事
方法三: Ubuntu使用aptitude卸载软件
aptitude与 apt-get一样,是 Debian及其衍生系统中功能极其强大的包管理工具。与 apt-get不同的是,aptitude在处理依赖问题上更佳一些。举例来说,aptitude在删除一个包时,会同时删除本身所依赖的包。这样,系统中不会残留无用的包,整个系统更为干净。以下是笔者总结的一些常用 aptitude命令,仅供参考。
安装aptitude
oucanrong@zcwyou:~$ sudo apt install-y aptitude删除包
sudo aptitude remove xxx删除包及其配置文件
sudo aptitude purge xxx搜索包
sudo aptitude search xxx显示包的详细信息
sudo aptitude show xxx删除下载的包文件
sudo aptitude clean仅删除过期的包文件
sudo aptitude autoclean利用apitude重装软件
sudo aptitude reinstall xxx方法四: Ubuntu使用dpkg命令卸载软件
dpkg用于安装本地deb软件包。
删除软件包及配置文件
sudo dpkg-P xxx