deb文件如何反编译_如何在ubuntu中安装makefile文件

deb文件如何反编译,如何在ubuntu中安装makefile文件?

1、重装系统2、从别的ubuntu系统里编译一个make拿到你的系统里面用3、下载对应版本的make.deb包用dpkg命令安装(确保你下载的make的版本的依赖已经解决了,他依赖特定版本的libc)这些是你无法使用apt-get安装软件时的几个选择。其中,重装系统最简单有效,毕竟你说你现在的这个是个老版本了

到什么程度才叫精通Linux?

巧了,作为十年程序员,我的头条简介里写的就是精通linux。那研究到什么程度才叫精通linux呢?小编以自己的经历来做一个解释:(以下经历由浅入深)

1、至少安装过不下10种linux发行版,了解各个发行版的特性和差异。

2、多年的linux操作系统使用经验

使用linux可以让你对linux的机制有一些外在的感觉

3、至少3年linux环境编程经验

linux环境编程,可以让你对linux的实现机制有了解。你就可以知道在linux系统上该怎么玩,怎么样去实现自己的业务目的。

4、定制过linux内核和文件系统

这样的经历可以让你对linux内核的运行机制有更深刻的了解。你可以了解内核和文件系统的界限是什么?联系点是什么?如何从内核态转入应用态。

5、了解linux内核

linux环境编程告诉你怎么做,让你一步一步的调用函数来完成目标。

但是如果你想知道为什么这么做,或者说底层是怎么做的?你就需要深入内核了,推荐下面这本内核学习的入门书籍,这本书很通俗的讲解了linux内核的设计与实现。我通过这本书大粒度的了解了linux底层的实现机制。

6、深入linux内核

了解linux内核的基本运作原理对上层开发人员是够了,但是如果要成为一个linux精通者远远不够,我的做法是阅读源码,但是linux的源码太多了,我选择了赵炯的linux0.11的内核去对照学些,这样对linux内核的细节有了很深的了解。

7、开发驱动

驱动开发会用到很多linux内核相关的机制,比如自旋锁、信号量、硬件中断、软中断、线程、工作队列、时钟、DMA等。这些可以进一步加深对linux内核的理解。我开发过的驱动过包括,watchdog,gpio,lcd,串口,虚拟串口、网卡,pci/pcie,usb等。

8、从内核层面思考问题

现在我的一个习惯就是碰到问题,会从内核角度去思考,会从上层思考到内核层面是如何设计的、为什么这样设计。如果想不通,会自己阅读内核源码找答案。

以上就是我的经历,这个程度,算不算精通linux呢?

其实我是心虚的,因为linux内核博大精深,很多人穷其一生也只是研究了一个小模块。

在这样的巨无霸面前,我们要学习和深究的地方还很多,惭愧呀惭愧!

欢迎关注我,一起努力、一起学习linux内核。

MySQL好部署吗?

MySQL非常容易部署。MySQL提供了多种安装方式,可以根据自己的需求和操作系统选择合适的方式进行部署。其中包括二进制安装、源码编译安装、操作系统自带的软件包安装等。此外,MySQL还提供了Windows Installer、RPM和DEB等安装程序,使得部署过程更加简单和方便。另外,MySQL还有一些管理工具,如MySQL Workbench、phpMyAdmin等,可以帮助用户进行数据库的管理和操作。这些工具可以在图形化界面下进行各种操作,使得管理和维护数据库变得更加简单和直观。总的来说,MySQL的安装和部署相对来说是比较简单和快速的,即使对于初学者来说也能快速上手。

l是什么意思啊?

意思是,“l”这个文件没有执行权限,可以查看。第一段:rw-,所属用户(比如是root)对这个文件可读可写。第二段:rw-,所属用户组用户,对这个文件可读可写。第三段:r--,其他用户对这个文件可读。扩展资料:ubuntu常用命令:1、dpkg:packagemanagerforDebian *安装:dpkg-ipackage *卸载:dpkg-rpackage *卸载并删除配置文件:dpkg-P|--purgepackage *如果安装一个包时、说依赖某些库、可以先apt-getinstallsomelib *查看软件包安装内容:dpkg-Lpackage *查看文件由哪个软件包提供:dpkg-Sfilename *另外dpkg还有dselect和aptitude两个frontend2、apt *安装:apt-getinstallpacks *更新源:apt-getupdate3、升级系统:apt-getupgrade *智能升级、安装新软件包,删除废弃的软件包:apt-getdist-upgrade *f--fixbroken修复依赖:apt-get-finstall *自动删除无用的软件:apt-getautoremove *删除软件:apt-getremovepackages *删除包并清除配置文件:apt-getremovepackage--purge *清除所以删除包的残余配置文件:dpkg-l|grep^rc|awk'{print$2}'|tr["/n"][""]|sudoxargsdpkg-P *安装软件时候包的临时存放目录:/var/cache/apt/archives *清除该目录:apt-getclean *清除该目录的旧版本的软件缓存:apt-getautoclean *查询软件some的依赖包:apt-cachedependssome *查询软件some被哪些包依赖:apt-getrdependssome *搜索软件:apt-cachesearchname|regexp *查看软件包的作用:apt-cacheshowpackage *查看一个软件的编译依赖库:apt-cacheshowsrcpackagename|grepBuild-Depends *下载软件的源代码:apt-getsourcepackagename(注:sources、list中应该有deb-src源) *安装软件包源码的同时,安装其编译环境:apt-getbuild-deppackagename(有deb-src源) *如何将本地光盘加入安装源列表:apt-cdromadd 3、系统命令: *查看内核版本:uname-a *查看ubuntu版本:cat/etc/issue *查看网卡状态:ethtooleth0 *查看内存,cpu的信息:cat/proc/meminfo;cat/proc/cpuinfo *打印文件系统空间使用情况:df-h *查看硬盘分区情况:fdisk *产看文件大小:du-hfilename; *查看目录大小:du-hsdirname;du-hdirname是查看目录下所有文件的大小 *查看内存的使用:free-m/-g/-k *查看进程:ps-e或ps-aux-->显示用户 *杀掉进程:killpid *强制杀掉:killall-9processname

为什么同一个应用ios比Android大那么多呢?

首先下载时所用的IPA和APK都是ZIP文件,比较压缩前的体积才有意义,iOS上46M的QQ就是因为一点没压缩。其次反对最上面说是因为资源文件的问题,不是每家公司的美工都爱偷懒的。对于常见的应用,个人认为体积大的原因是是iOS上的可执行文件比Android上的字节码文件体积大太多,以常用的QQ为例。iOS上的可执行文件在未压缩前是44M,压缩后是20MAndroid版QQ的执行文件有点多这个是主文件这3个是库文件四个加起来,压缩前是20M,压缩后共11.4M,也就是说可执行文件的iOS版比Android版在压缩前多了24M,压缩后多了8M。再看看IPA文件和APK文件的体积:对比上面的可执行文件体积,可以说在手机QQ中,Android版的资源文件比iOS版多了一倍。

针对占用应用体积大小的大户图片资源,来尝试回答下这个问题

.1. 一个应用的影响大小因素很大一方面是来自于资源,而非代码,一般应用主要的是图片资料,比如图标,背景,图片等.2. iOS 对于图片资源的要求严格一些、

2.1 从屏幕密度上说: 比如 iOS 上屏幕密度不同,得支持 iPhone 6 Plus (3倍),iPhone 6(2倍) iPhone 3GS(1倍)那么你必须提供三种屏幕密度的图片资源,即: 60x60,40x40,20x20, 如果不提供的话,至少在 iOS 7之前则会显示文件缺失.这方面 Android 的机制复杂但宽松一些:说复杂是因为 iOS 的图片资源主要有屏幕密度作为区别(在 iOS 8中也加入了几个屏幕大小的类别),但是 Android 呢,你可以看到: 根据Android 关于资源的官方文档 Providing Resources上面所列举出来的 Table 2. Configuration qualifier names. 有18大项之多.不仅包含屏幕密度,长,宽,大小,比例,方向,语言,还包含其他 N 多情况. 这是复杂的一面.按理来说,Android 的应用应该比 iOS 的大才对.但是事实并不是这样的.因为 Android 的限制宽松一些.就拿屏幕密度来说,iOS 的屏幕密度现在就三种,(如果不考虑老的设备的话,就算两种了)但是 Android 的设备,你知道千奇百怪,很多种--不过基本也在1倍,2倍,3倍,左右.如1.5倍, 2倍, 2.2倍,2.5倍等等. 屏幕密度很多种,怎么办? Android 在一开始设计的时候就提供了这样一个解决方法:即,如果1.5的设备,对应图片不存在,如果有2倍或以上的倍数的图片就用相应的图片,缩放后使用.上面文档关于屏幕密度的与资源的匹配说明如下:

Note: Using a density qualifier does not imply that the resources are only for screens of that density. If you do not provide alternative resources with qualifiers that better match the current device configuration, the system may use whichever resources are the best match.

这样造成的一种情况就是:很多应用其实都是主要使用一份屏幕密度的图片资源,比如我看微信 Android 版本,有一个版本的资源图片主要集中在3倍上. 这样一来,Android 应用就比 iOS 设置少了两份屏幕密度的资源了.

在这里稍微总结一下:Android 的图片资源查找规则是查找最匹配的一个,最终查找到有就不会出错.而 iOS 在 iOS 7之前呢,则就是查找匹配的资源.对于一般的图片,图标来说,从96x96压缩到72x72对外观应该没有什么影响(具体我没有测试过),所以导致 Android 中提供的资源少一些.

2.2 上面说了屏幕密度,那屏幕大小呢? Android 的屏幕大小也是众多的,反正我是说不清倒底有多少,但是 iOS 呢? 我估计你稍微查找下资源,是可以穷举过来的. 例如 iPhone 从3GS到5S 屏幕的宽度都可以表述为320点宽对设计和实现上有这么一些影响:1. 也许你已经知道,很多设计师一般是以 iPhone 为参考大小来设计的.这个时候举一个例子:假充我需要有一个设计上有一个背景,320x240, 这样设计师,切出来之后,就是320x240再出一份,640x480的, iOS 开发者,放上去直接可用 - 搞定,到面透气去了.Android 开发者,这个时候就苦逼一点了,因为 Android 的屏幕宽度比例众多,怎么搞?一开始 Android 开发工具提供了一个叫 Draw-9-Patch 的软件(我就不具体描述这个软件有多难用了,反正用过的都说坑,--- 后来这个软件可以拖动了,1年成集成进 Android Studio,更好用了),这个软件就是用来画点九(.9.png)图片,点九图片的概念具体我就不解释了(基主要是一个图片四条边,左边和上边可定义可扩展区域,右边和下边可以用来定义内容区域)然后花几分钟,或者补学者,慢一点10多分钟,将一张图片处理好,作为背景来说,可自动根据大小拉伸缩放.(最典型的案例其实是,如聊天用的气泡背景图)上面的问题造成这样的可能:一张背景图在 iOS 因为至少有两份,而且是原图大小可能要10多 K.但在 Android 这边制作成点九格式之后一般是1K 不到.

说明: 在设计上,(主要内容区域)纯色的背景下点九处理是再好不过了,但是有些纹理的就会导致最终的效果差强人意了. 说明2: 在 iOS 中,Xcode 5也加入了制作类似点九图的功能叫 Slicing.(之前也可以在代码中,设置图片的edge 来达到点九的效果,但是一般用的情况不多- 这是由于 iOS 设备尺寸种类有限决定的)说明3: iOS 比 Android 更容易在应用中还原设计. Android 中由于尺寸众多,导致开发者对设计还原的妥协. 所以一般的应用大小反而更低,但是美观上略输(针对现在,以前是输很多),其实从某些方面来说,这也是近年影响扁平化设计的一个因素,纯色远比纹理,阴影,高光处理来得方便.

总结: Android 系统资源宽松灵活,使得 Android 应用体积较小,但是设计上不如 iOS 精致

给TA打赏
共{{data.count}}人
人已打赏
0 条回复 A文章作者M管理员
    暂无讨论,说说你的看法吧