Ubuntu下源码软件安装好之后如何启动
Ubuntu下启动已安装的软件可以通过终端进入该软件目录,命令运行,或者建快捷方式(跟Windows下类似),这里以Firefox为例:终端启动软件方法:1.把Firefox安装文件拷贝到/usr/local目录下1sudo mv Firefox**.tar.gz /usr/local2.进入/usr/local,解压Firefox**.tar.gz1sudo tar -jxvf Firefox**.tar.gz3.进入Firefox目录,运行firefox12cd Firefox./firefox建立桌面快捷方式:1.创建一个文件名为Firefox.desktop文件,将下面的代码拷贝进去12345678910111213141516171819[Desktop Entry]Categories=Development;Comment[zh_CN]=Comment=Exec=/usr/local/Firefox #Exec=软件执行文件的路径GenericName[zh_CN]=IDEGenericName=IDEIcon=/usr/local/Firefox/icon.xpm #Icon=快捷方式图标MimeType=Name[zh_CN]=eclipseName=火狐浏览器 #Name=快捷方式名称Path=StartupNotify=trueTerminal=falseType=ApplicationX-DBUS-ServiceName=X-DBUS-StartupType=X-KDE-SubstituteUID=falseX-KDE-Username=owen2.给文件添加可执行权限1chmod +x Firefox.desktop3.将该文件复制到桌面注:在ubuntu11.04之前的版本中,有更简单的方法来创建桌面快捷方式:右键点击桌面-创建启动器即可。
怎么在linux里面安装软件?
目前流行的软件包有两种比较常见的形式,一种是以 RPM、deb包为代表的智能软件包,另一种是file.tar.gz形式的压缩。
一、源代码安装应用软件的源代码一般是file.tar.gz或者file.tgz格式,也就是说是以tar来打包,然后用gzip来压缩。
以应用软件xfce-3.8.7.tar.gz为例,先进入软件的当前目录,然后使用gzip解压:#gzip -d xfce-3.8.7.tar.gz(注:-d 代表解压)。
然后用tar解包:#tar -xvf xfce-3.8.7.tar。
由于tar和gzip经常一起使用,所以tar还提供了一个参数,它可以自动调用gzip来解压,即:# tar -xzvf xfce-3.8.7.tar.gz。
进入解压完成之后新建立的目录,一般的应用软件中都有一个用来配置软件的可执行文件——configure,它的参数比较多,而且用法也非常灵活。
当然,安装不同的软件参数也不相同,具体有些什么参数,可以用命令:#./configure help取得详细的帮助。
例如./configure --prefix=/usr/local/mysql(表示设置软件的安装目录为:/usr/local/mysql)在运行#./configure [options]配置软件后,它会根据你当前系统、编译、安装相关的信息,生成一个安装配置文件Makefile。
Makefile文件通常是用来编译和安装软件的,运行make命令时系统会自动根据Makefile文件中的设置对软件进行编译和安装,如果编译能够顺利通过的话,运行#make install命令来安装。
二、智能包安装现在,以智能包形式提供的软件很多,像RedHat Linux的RPM、Debian Linux的DEB、KISS、BSD以及Slackware等。
RPM和Debian几乎统治着Linux包管理世界是Linux发行版本所广泛采用的应用软件。
RPM是RedHat Package Manager的缩写,它只能使用在安装了RPM软件的系统中,不过好像目前大多数中文Linux发行版本都支持RPM软件包。
1、用命令管理#rpm [options] abc.rpm例如安装python-1.5.2-35.i386.rpm软件时,可以使用如下命令:#rpm –ivh python-1.5.2-35.i386.rpm。
如果想知道RPM软件包中的相关信息,可以使用命令: #rpm ivhpython1.5.2- 35.i386.rpm。
如果想知道python-1.5.2-35.i386.rpm会在系统里安装哪些文件,可以使用以下这个命令:rpm -qpl python-1.5.2-35.i386.rpm。
2、图形界面工具管理相对命令方式来说,在图形环境下,安装、升级、卸载和查询RPM软件包是一件非常简单轻松的事情,因为Linux提供了几个功能强大的RPM包管理工具。
推荐使用Linux的图形管理工具来维护RPM软件包,GNOME中的GnoRPM和KDE中的Kpackage就是功能强大的RPM。
点击Start(开始)→System tools(系统工具)→Kpackage,出现Kpackage界面,同时分析Linux系统中的 RPM数据库。
它将安装好的RPM包形式的软件按照功能分在Amusements、Application、Development、Document、 Extension、Extentions、Networking、System Environment、User Interface以及X11等几个树形目录中,每个目录中有相应的文件图标和名称。
要安装或升级软件,只要点击工具栏的相应按钮就会弹出打开文件的对话框,选中要安装的RPM文件,单击OK按钮,如果不缺必要的运行库,就开始安装软件了。
卸载软件时,用鼠标选择相应的软件,单击右边的Uninstall按钮就可以了。
谁给我讲讲CFLAGS的相关知识啊!(Linux Makefile)
转帖 GCC CFLAGS 参数说明 参数与用法 [注二] -O -O0, -O(-O1),-O2, -O3, -Os 依照后面数字的大小,针对效能最佳化的程度也不同 (稳定度也可能递减)。
其中 -Os 是个比较特殊的等级,针对原始码大小最佳化。
可使用 -Os,降低程序加载的时间。
-fforce-mem, -fno-force-mem -fforce-addr, -fno-force-addr 强制在运算前将内存中的数值 (mem) 或内存位置 (addr) 复制到缓存器中。
启动这两个选项可以做出较好的程序代码。
这两个是好东西,启动它们!其中 -fforce-mem 已在 -O2, -O3, -Os 中启动,所以若您有用这三个选项的其中一个,只要 -fforce-addr 就够了。
-fomit-frame-pointer -fomit-frame-pointer, -fno-omit-frame-pointer 若非必要,不将函式的 frame pointer 放进缓存器中。
这将避免您的程序储存、设定、以及还原 frame pointer;也在许多函式中省下一个缓存器。
这个选项可能让某些平台上的除错工作变成不可能!。
若平台支持不使用 frame pointer 除错,这个选项将在 -O, -O2, -O3, -Os 中启动。
-finline-functions, -fno-inline-functions 将所有简单的函式整合进呼叫他们的函式中。
编译器会自动试探并决定那些函式值得被整合。
于 -O3 时启动。
虽然这个选项会增加程序大小,但是他却是个增进效能的好东西。
我建议您在这里启动它,然后使用下面一个指令指定 inline 条件。
-finline-limit=n n 为决定函式是否能被 inline 的伪指令长度。
预设的值为 600。
这个数值越小,程序启动的速度越快,但是运算的速度越慢。
作为桌面使用,我建议 -finline-limit=400。
-fmove-all-movables, -fno-move-all-moveables -freduce-all-givs, -fno-redduse-all-givs 这两个是循环最佳化技术,将无关循环内容的运算改在循环外执行。
编译出的执行档可能更快也可能更慢,结果跟程序的写法有很大的关系。
虽然说效能跟程序写法有关,但是大部份的状况下这两个选项会做出比较小与比较快的程序代码,所以我建议您启动他们! -freorder-blocks, -fno-reorder-blocks -freorder-functions, -fno-reorder-functions 藉由重新编排程序区块来增进效能以及减少执行档大小。
这两个也是好东西,所以我建议您启动它们。
缺点是会让编译时间变长。
-fexpensive-optimizations, -fno-expensive-optimizations 执行几个会加长编译时间的非主要最佳化程序。
于 -O2, -O3, -Os 中预设开启。
虽然会增加编译时间,但是能增加效能也能减少执行档大小,所以建议启用。
-falign-functions, -falign-functions=n -falign-labels, -falign-labels=n -falign-loops, -falign-loops=n -falign-jumps, -falign-jumps=n 依照大于 n 的最小 2 的次方字节对齐函式 (functions)、标签 (labels)、循环 (loops)、跳跃 (jumps) 的起头,跳过至多 n 字节。
我知道这很抽象,解释起来要花很多篇幅,所以请各位使用默认值,亦即指定 -falign-functions, -falign-labels, -falign-loops, -falign-jumps,但是不指定 =n-frename-registers, -fno-rename-registers 在作过缓存器定位之后,使用剩下来的缓存器。
这个最佳化在有很多缓存器的 CPU 上最明显 (如 ARM、PowerPC... 等。
x86 不属于他们的一份子)。
会增加除错的困难度。
-fweb, -fno-web 建立经常使用的缓存器网络。
提供更佳的缓存器使用率。
不过也会增加除错的困难度。
这个是安全选项中比较偏向实验性质的选项,虽然建议您启动,但是若启动之后程序不稳,请将它关闭。
于 -O3 时启动。
平台相关选项-march=cpu-type -mtune=cpu-type 依照不同的目标处理器进行最佳化。
注意,若您指定了 -march,制作出的执行档将无法在其它 CPU 上使用。
但是若光指定 -mtune,gcc 会避免使用平台专有指令集跟专用排程选项。
可用的选项有:...建议的 CFLAGS 根据不同的用途,每个系统的 CFLAGS 也不尽相同。
以下列出建议的 CFLAGS。
其中请将 换成您的 CPU,以及根据系统支持程度启动 [] 里面的选项: * 最安全、什么都没有的 CFLAGS。
在您回报执行阶段的错误 (sig 11、当机、运算错误) 之前,请先使用此 CFLAGS 编译一次,若还是发生同样的错误,才向 Gentoo Bugzilla (http://bugs.gentoo.org/) 回报: -march=i686 -mtune=i686 -O2 -pipe * 稍微比较快的 CFLAGS (建议那些以稳定为诉求的使用者使用): -march= -mtune= -O2 -pipe -fomit-frame-pointer * 注重执行时期效能使用的 CFLAGS (建议需要快速运算的软件使用): -march= -mtune= -mfpmath=sse,387 [-mmmx -msse -msse2 -msse3 -m3dnow] -minline-all-stringops -pipe -O3 -fomit-frame-pointer -fforce-addr -finline-functions -finline-limit=800 -fmove-all-movables -freduce-all-givs -freorder-blocks -freorder-functions -fexpensive-optimizations -falign-functions -falign-labels -falign-loops -falign-jumps -frename-registers -fweb -funit-at-a-time -funroll-loops -fprefetch-loop-arrays -ffunction-sections -fdata-sections -fbranch-target-load-optimize -fbranch-target-load-optimize2 * 注重档案大小与加载速度的 CFLAGS (建议需要常常被启动的程序使用): -march= -mtune= -mfpmath=sse,387 [-mmmx -msse -msse2 -msse3 -m3dnow] -maccumulate-outgoing-args -malign-stringops ...
apache 这个软件是干嘛用?
Apache是一个历史悠久并且功能十分强大的WEB服务器,但其丰富的功能对于一个新手来说往往不知道从何下手。
我个人感觉Apache的设计充分体现了模块化设计的优势,通过在动态模块加载(DSO)模式下的安装,任何子应用模块都可以通过配置文件的简单修改进行积木式的灵活配置。
安装的过程可以从简单的静态html服务开始,一个模块一个模块的学习使用。
从单纯的HTML静态服务(core),到复杂的动态页面服务(core + php, core + resin, core + php + mod_gzip, core + resin + mod_expire)。
本文主要从简化安装==>性能调优==>维护方便的角度,介绍了WEB服务的规划、HTTPD安装/应用模块配置、升级/维护等过程。
让Apache和PHP,Resin等应用模块的独立升级,完全互不影响。
WEB应用容量规划:根据硬件配置和WEB应用的特点进行WEB服务的规划及一些简单的估算公式; Apache安装过程:apache的通用的简化安装选项,方便以后的应用的模块化配置;修改 HARD_SERVER_LIMIT:vi /path/to/apache_src/src/include/httpd.h#define HARD_SERVER_LIMIT 2560 <===将原来的 HARD_SERVER_LIMIT 256 后面加个“0”apache编译:./configure --prefix=/home/apache --enable-shared=max --enable-module=most 可选应用模块/工具的安装:php resin mod_gzip mod_expire及各个模块之间的配合;mod_php安装:./configure --with-apxs=/home/apache/bin/apxs --enable-track-vars --with-mysqlmod_resin安装:./configure --with-apxs=/home/apache/bin/apxs mod_gzip安装:修改Makefile中的 apxs路径:然后make make install工具:日志轮循工具cronolog安装:http://www.cronolog.org升级/维护:看看通用和模块化的安装过程如何简化了日常的升级/维护工作;按照以上的方法:系统管理员和应用管理员的职责可以清楚的分开,互相独立。
系统安装:系统管理员的职责就是安装好一台DSO模式的Apache,然后COLON即可,应用安装:由应用管理员负责具体应用所需要的模块,比如PHP Resin等,并设置httpd.conf中相关的配置。
系统升级:系统管理员:升级操作系统/升级Apache应用升级:应用管理员:升级应用模块,PHP Resin等。
WEB应用的容量规划Apache主要是一个内存消耗型的服务应用,我个人总结的经验公式:apache_max_process_with_good_perfermance < (total_hardware_memory / apache_memory_per_process ) * 2apache_max_process = apache_max_process_with_good_perfermance * 1.5为什么会有一个apache_max_process_with_good_perfermance和apache_max_process呢?原因是在低负载下系统可以使用更多的内存用于文件系统的缓存,从而进一步提高单个请求的响应速度。
在高负载下,系统的单个请求响应速度会慢不少,而超过 apache_max_process,系统会因为开始使用硬盘做虚拟内存交换空间而导致系统效率急剧下降。
此外,同样的服务:2G内存的机器的 apache_max_process一般只设置到1G内存的1.7倍,因为Apache本身会因为进程过多导致性能下降。
例子1:一个apache + mod_php的服务器:一个apache进程一般需要4M内存因此在一个1G内存的机器上:apache_max_process_with_good_perfermance < (1g / 4m) * 2 = 500apache_max_process = 500 * 1.5 = 750所以规划你的应用让服务尽量跑在500个进程以下以保持比较高的效率,并设置Apache的软上限在800个。
例子2:一个apache + mod_resin的服务器: 一个apache进程一般需要2M内存在一个2G内存的机器上: apache_max_process_with_good_perfermance < (2g / 2m ) * 2 = 2000apache_max_process = 2000 * 1.5 = 3000以上估算都是按小文件服务估算的(一个请求一般大小在20k以下)。
对于文件下载类型站点,可能还会受其他因素:比如带宽等的影响。
Apache安装过程服务器个数的硬上限HARD_SERVER_LIMIT的修改:在Apache的源代码中缺省的最大进程数是256个,需要修改apache_1.3.xx/src/include/httpd.h#ifndef HARD_SERVER_LIMIT#ifdef WIN32#define HARD_SERVER_LIMIT 1024#elif defined(NETWARE)#define HARD_SERVER_LIMIT 2048#else#define HARD_SERVER_LIMIT 2560 <===将原来的HARD_SERVER_LIMIT 256 后面加个“0”#endif#endif解释:Apache缺省的最大用户数是256个:这个配置对于服务器内存还是256M左右的时代是一个非常好的缺省设置,但随着内存成本的急剧下降,现在大型站点的服务器内存配置一般比当时要高一个数量级不止。
所以256个进程的硬限制对于一台1G内存的机器来说是太浪费了,而且Apache的软上限 max_client是受限于HARD_SERVER_LIMIT的,因此如果WEB服务器内存大于256M,都应该调高Apache的 HARD_SERVER_LIMIT。
根据个人的经验:2560已经可以满足大部分小于2G内存的服务器的容量规划了(Apache的软上限的规划请看后面)。
Apache的编译:以下通用的编译选项能满足以后任意模块的安装./configure --prefix=/another_driver/apache/ --enable-shared=max --enable-module=most比如:....
请问用win764位系统开发qt软件需要什么环境
1.搭建C++开发环境,使用mingw32 或者visual studio。
这个很简单,mingw32的话直接使用官网的mingw-get 安装工具在线安装,推荐使用预打包的库,这样不会有兼容问题。
白天装比晚上效果要好的多。
VS的话推荐使用vs2010或以上的版本,至于哪里弄的话,请百度,你懂的,很多资源,注意这两个都是32位的,不需要64位的,而且64的各种问题……2.安装cmake,这个可以是预编译的二进制,也可以是源码再自己编译。
这个和你使用的编译环境没关系,cmake是为了输出makefile的,所以只要有这个装在电脑上就行了,注意这个预编译版本只有32位的(x86)。
mingw32 自己编译的话,包装的差不多基本上就没啥困难了。
其实cmake这个可以不装,但是有个问题存在,如果使用mingw32的话,还要一个IDE环境,一般QT我们在windows上都用Qt creator 2.6.1/Qt4.8.4 。
但是这货启动就会检查cmake……至于vs,我不清楚,反正qt本身没有要求cmake,估计是不用的。
3.从qt-project网站下载opensource版的Qt,注意!Qt5默认加入了openGL支持,你要是想用就要注意你确实能满足这个条件不。
推荐使用4.8.8版本,毕竟Qt的资料少的可怜,Qt5放出来还没几个月呢,根本没啥资料。
mingw和vs是不一样的。
话说vs版本要求2010,最好是这个,支持比较多。
4.mingw的话,要装qt creator2.6。
毕竟没有IDE很难搞,即使装了cmake也可能出现cmake环境配置不正确的问题,这样只要打开qt creator 然后如果发生cmake错误,那么不管,直接进到选项->;构建和运行下边的选项把你的mingw编译器设置进去,cmake目录指到你的cmake.exe上,默认的安装地址为mignw/bin下边。
然后确定你的mingw编译器被自动识别出来才行。
就是cmake标签前面那个编译器的标签下边要有mingw(x86)这一项。
这样基本上就差不多了。
qt creator的话,很好用。
VS2010 要在qt-project网站上下载vs-addin,然后它会为你完成大部分的工作。
这个我并没有用,因为vs太大了,启动很慢,而且和qt工具集成的不是那么漂亮。
最后,反正我是正常运行的……用的还好,就是参考文档还是太少。
第一次用linux的ubuntu,很多问题
1.用你建的用户,运行命令的时候直接在前面加上sudo即可,然后会提示输入你自己的密码要是非要想用root直接登录,可以sudo passwd root,得加sudo2.运行:sudo apt-get install build-essential vim当然也会提示输入密码,之后的问题当然选是3.这个不太可能推荐的很全,你说的这几个的话,比如播放器,简单点的东西totem就可以,不过建议用totem的xine版,别用gstreamer,软件包名是totem-xine支持格式全点的就是mplayer,不过是命令行的,也有另外写的图形界面,但是控制也不是特别方便,不过用来看电影什么的基本不需要复杂的控制,影响也不大,软件包名就是mplayeracdsee,我不太清楚有没有类似的,我这装着两个看图的软件,一个是F-spot,是类似picasa的那种,不过用起来个人感觉不是很好,一个是comix,主要是专门看压缩文件里的图的,要是你知道很多类似软件的话可以都装上试试,反正装软件也不麻烦迅雷,恐怕没有好的替代品,因为迅雷是网络服务,别人写出个软件,要是用的人少,速度就不会有很大提高,说不定你可以试试用wine运行迅雷,不过不保证稳定,现在我一般就是用firefox或者wget直接下软件的安装方法:sudo apt-get install 软件包名软件包名可以一下多写几个,用空格隔开,然后等着就可以了4.可以说有必要,装吧,最新版本的ubuntu已经出了快4个月了,所以更新多,有的人比你更倒霉,下一个版本出来的几天之前装ubuntu,更新更多,不过一般自己用晚点装也无所谓,注意不能同时更新和装软件5.为什么非得优化,你感觉运行的慢?要不是的话就说明默认设置就不错,不用优化了。
慢的话无非也就是少开点程序。
有的时候改程序的编译参数也会有效果,不过一般是以牺牲功能为代价,而且在ubuntu这种操作系统里什么都自己编译也不是很容易的事不过提醒一下得把显卡驱动装上,这个装和不装差别很大6.有一些,但是不是很多,在系统->;首选项->;键盘快捷键里有设置不过你要是用了其他的窗口管理器,比如compiz或者beryl,得在这个窗口管理器的设置程序里设7.有问题多搜索,就可以了
ProC编程都需要了解哪些知识? shell,makefile,unix命令什么的?
[回答]:需要至少3种知识1.C语言2.Unix操作系统3.SQL文很抱歉,proC和pro*C是完全的两种东西,楼主说的是pro*C吧。
下面分别介绍1.C语言C语言是国际上广泛流行的,很有发展前途的计算机高级语言.它适合作为系统描述语言,即可用来编写系统软件,也可用来编写应用软件. 2.Unix操作系统2-1.Unix命令Unix命令很多,大致分为以下几种*1. 与用户相关的命令*2. 命令或文件的查找*3. 查看命令的用法*4. 管理员常用命令*5. 与进程相关的命令*6. 通讯*7. 文件比较*8. 文件操作*9. 目录操作*10. 文件信息命令*11. 编辑器*12. 文件内容查找*13. 任务调度*14. 存储,归纳及压缩*15. 其他命令*16. 文本处理*17. 网络配置命令及故障排除命令2-2.Makefile自动化编译工具,一个工程中的源文件不计数,其按类型、功能、模块分别放在若干个目录中,makefile定义了一系列的规则来指定,哪些文件需要先编译,哪些文件需要后编译,哪些文件需要重新编译,甚至于进行更复杂的功能操作,因为 makefile就像一个Shell脚本一样,其中也可以执行操作系统的命令。
2-3.shell 在proc中主要用于启动程序Bourne shell,由Stephen Bourne开发 Korn shell,由David Korn开发 C shell,由Bill Joy开发 shell的功能:命令行解释功能 启动程序 输入输出重定向 管道连接 文件名置换 变量维护 环境控制 shell编程 3.SQL文数据库操作语言总结:Pro*C的概念可以简单的理解为:通过在过程化编程语言C/C++中嵌入SQL语句而开发出的应用程序.悉雨辰寂
如何判断一个开源软件源码里的核心代码
在阅读源码之前,还应知道Linux内核源码的整体分布情况。
现代的操作系统一般由进程管理、内存管理、文件系统、驱动程序和网络等组成。
Linux内核源码的各个目录大致与此相对应,其组成如下(假设相对于Linux-2.4.23目录): 1.arch目录包括了所有和体系结构相关的核心代码。
它下面的每一个子目录都代表一种Linux支持的体系结构,例如i386就是Intel CPU及与之相兼容体系结构的子目录。
PC机一般都基于此目录。
2.include目录包括编译核心所需要的大部分头文件,例如与平台无关的头文件在include/linux子目录下。
3.init目录包含核心的初始化代码(不是系统的引导代码),有main.c和Version.c两个文件。
这是研究核心如何工作的好起点。
4.mm目录包含了所有的内存管理代码。
与具体硬件体系结构相关的内存管理代码位于arch/*/mm目录下。
5.drivers目录中是系统中所有的设备驱动程序。
它又进一步划分成几类设备驱动,每一种有对应的子目录,如声卡的驱动对应于drivers/sound。
6.ipc目录包含了核心进程间的通信代码。
7.modules目录存放了已建好的、可动态加载的模块。
8.fs目录存放Linux支持的文件系统代码。
不同的文件系统有不同的子目录对应,如ext3文件系统对应的就是ext3子目录。
Kernel内核管理的核心代码放在这里。
同时与处理器结构相关代码都放在arch/*/kernel目录下。
9.net目录里是核心的网络部分代码,其每个子目录对应于网络的一个方面。
10.lib目录包含了核心的库代码,不过与处理器结构相关的库代码被放在arch/*/lib/目录下。
11.scripts目录包含用于配置核心的脚本文件。
12.documentation目录下是一些文档,是对每个目录作用的具体说明。
一般在每个目录下都有一个.depend文件和一个Makefile文件。
这两个文件都是编译时使用的辅助文件。
仔细阅读这两个文件对弄清各个文件之间的联系和依托关系很有帮助。
另外有的目录下还有Readme文件,它是对该目录下文件的一些说明,同样有利于对内核源码的理解。
在阅读方法或顺序上,有纵向与横向之分。
所谓纵向就是顺着程序的执行顺序逐步进行;所谓横向,就是按模块进行。
它们经常结合在一起进行。
对于Linux启动的代码可顺着Linux的启动顺序一步步来阅读;对于像内存管理部分,可以单独拿出来进行阅读分析。
实际上这是一个反复的过程,不可能读一遍就理解。
转载请注明出处51数据库 » makefile启动软件
五虎将赵子龙