1.Linux下源码安装的源码经验详解
2.什么是开源软件?有什么优缺点?
3.centos软件安装方式中源码方式安装和二进制安装是一个意思吗?
4.Linux安装软件的方法哪种好?
5.Linux怎么升级软件版本
6.Mac平台下的FFmpeg的安装编译
Linux下源码安装的经验详解
在linux下安装软件,难免会碰到需要源码安装的编译,而就是安装这简简单单的./configure、make、源码sudo make install三步,编译却让不少人头疼不已,安装免费狂抓涨停分时主图源码这里以安装X为例具体介绍下我在安装时的源码一点小经验,以便共同学习,编译共同进步!安装
首先,源码我们要做些准备工作,编译源码安装少不了这几个工具pkg-config、安装libtool、源码autoconf和automake(当然,编译还有更基础的安装,像zlib、m4等,这里就略过啦),其中,pkg-config是相对比较重要的,它就是向configure程序提供系统信息的程序,如软件的版本、库的版本以及库的路径等信息,这些只是在编译期间使用。你可以打开/usr/lib/pkgconfig下任意一个.pc文件,就会发现类似下面的信息(X的pc文件):
prefix=/usr
exec_prefix=${ prefix}
libdir=${ exec_prefix}/lib
includedir=${ prefix}/include
xthreadlib=-lpthread
Name: X
Description: X Library
Version: 1.3.3
Requires: xproto kbproto
Requires.private: xcb = 1.1.
Cflags: -I${ includedir}
Libs: -L${ libdir} -lX
Libs.private: -lpthread
configure就是靠着这些信息来判断软件版本是否符合要求的。接着来看看pkg-config是怎样工作的,缺省情况下,pkg-config首先在usr/lib/pkgconfig/中查找相关包(譬如x)对应的相应的文件(x.pc),若没有找到,它也会到PKG_CONFIG_PATH这个环境变量所指定的路径下去找,若是还没有找到,它就会报错。所以这里就可以得到一些解决configure时提示**库未找到的静脉识别算法源码办法了,先用命令ldconfig -p | grep 库名来分析该库是否安装及其路径,若返回空,则说明该库确实未安装,否则,可以根据该命令的返回结果找到库的安装地点,然后设置其环境变量,命令如下:
export PKG_CONFIG_PATH=软件位置/lib/pkgconfig:$PKG_CONFIG_PATH,这里有个常识,软件安装后,.pc文件都是在安装目录下的lib/pkgconf中的。这样只会在当前命令窗口有效,当然,你也可以修改home文件夹下的.bashrc文件(带.的文件为隐藏文件,可以用命令vi .bashrc编辑),在文件末尾加上上面那句命令,重新登录即可。其他的几个在linux下也是不可或缺的,libtool为管理library时使用,没装的话错误提示如下:possibly undefined macro:AC_PROG_LIBTOOL。而autoconf和automake可以用于在某些没有configure的文件的源码包安装时使用(pixman就是个典型的例子,安装了二者后直接./autogen.sh就可以安装了)。
准备工作做好后,就可以安装了,具体全部命令如下:
tar vxf libX-6.2.1.tar.gz
cd libX-6.2.1
mkdir X-build
cd X-build
../configure prefix=/usr/local/XR6
make
echo $
sudo make install
这里有一些好的安装习惯可以积累一下:1、建立一个临时编译目录,本例中为X-build,这样可以再安装完成后删除该目录,进而可以节省空间,而且保持了源码目录的整洁;2、安装到指定目录,本例中为/usr/local/XR6,最好把几个相关的安装在同一文件夹下,如这里的微软源码怎么开发XR6文件夹,这样便于管理,否则全部默认安装在/usr/local下,很杂乱;3、编译完成后做检查,本例为echo $,表示检查上一条命令的退出状态,程序正常退出返回0,错误退出返回非0,也可以使用make check,主要为了防止make失败后直接install,进而出现了一些莫名其妙的错误。这里还介绍一种更方便快捷的安装方法,用将安装命令连接起来,如../configure prefix=**makesudo make install,这样,只有在前面的命令执行正确的情况下,后面的任务才会执行,多方便!
除此之外,安装之前可以阅读下源码包中的readme和install等文档,往往有所需软件及其下载地址,还包括一些安装技巧和配置选项。另外,在configure前,先输入configure help,可以查看有哪些选项可以添加。还有几个关系安装成功的东西就是ldconfig了,在安装时如果提示找不到某个库或者在编译时提示找不到**.so文件,就要用到它了,最简单的解决办法就是sudo gedit /etc/ld.so.conf,在文件中加入**.so文件所在路径,再运行一下ldconfig就可以了,但是源码销售商城我对这个东西有阴影,不知道是因为用了虚拟机还是其他的原因,有7、8次我在运行完ldconfig后,Ubuntu就没办法打开任何窗口了,直接关机重启就更是进不去系统了,崩溃之,不知道有没有高手有解决办法。在这里提供一种代替ldconfig的办法,就是export LD_LIBRARY_PATH=*.so文件地址:$LD_LIBRARY_PATH,用它我就舒心多了,也就是麻烦点,哥忍了,总比系统崩溃强多了吧,呵呵!其实,在configure时碰到问题,你应该庆幸,因为你可以根据它很明显的提示找到缺失的东西装上,在配置下pkgconfig和ldconfig基本上就可以搞定了,但是make的时候就没那么简单了。
编译时提示最多的就是**东西未找到了,要么是库文件,要么是头文件,库文件用上面的ldconfig基本上就可以搞定,头文件的话需要配置包含的路径,和库的类似,命令如下:
export LD_INCLUDE_PATH=/usr/local/include:$LD_INCLUDE_PATH
在这个时候最重要的就是淡定了,循着丫的error往上找,像No such file or directory这样的错误提示肯定就在附近,找到了,include之就可以咯!
什么是开源软件?有什么优缺点?
开源软件,即开放源代码软件,自带图标ce源码指的是那些允许用户查看、修改和分发其源代码的软件。这种软件的优点包括:
1. 降低风险:开放源代码使得用户能够控制其业务所依赖的工具。若开源软件的开发者提高了价格、添加了不合理的限制或采取了用户不满的措施,其他组织可以基于这些源代码开发新的产品来应对这些问题。用户也可以自行维护或委托他人改进软件以满足自身需求。
2. 质量高:研究表明,开源软件在可靠性方面优于商业软件。这种优势得益于更有效的开发模式、广泛的同行审查以及开发者对作品的荣誉感。一些公司还通过奖励来鼓励用户报告Bug。
3. 透明度高:开源代码使得软件的各个部分都能被检查和理解,这对于发现和修复安全漏洞至关重要。一些开源软件产品非常成功,以至于其商业竞争对手无法生存。
然而,开源软件也有其缺点:
1. 技术要求:安装和使用开源软件可能需要用户具备一定的技术能力,如配置或编译源代码的能力。
2. 依赖性:许多组织严重依赖开源软件,这可能带来潜在的风险。
3. 责任问题:当出现问题时,可能没有人负责,这可能导致经济损失。
开放源码软件与免费软件的区别在于,免费软件只是指无需支付费用即可获得的软件,但它可能存在使用上的限制或未公开的源代码。而开源软件强调的是源代码的公开性和可访问性,允许用户自由修改和分发。
centos软件安装方式中源码方式安装和二进制安装是一个意思吗?
不是一个意思。
二进制安装和源码安装区别
二进制包里面包括了已经编译完成,可以直接运行的程序。你通过下载和解包(安装),执行完该指令后就可以马上使用了。因此这种方式简单快捷,适合比较固定、无需改动的程序。
源代码包里是程序的原始代码,在你的计算机上必须经过编译,生成了可执行的二进制文件,方可运行。一些个人开发的程序、第三方修改或者你希望修改的程序都应当通过源代码包的来编译安装。《Linux就该这么学》一起学习linux
Linux安装软件的方法哪种好?
根据个人以及系统的实际情况而定,一般RPM包的方法比较简单。
软件安装分几种情况:
一、源码安装:
对于本身具有开源血统的Linux系统来说,几乎所有的开源软件都支持在Linux平台运行,而这些软件一般都以源码打包形式分发,源码安装适用于所有Linux分支,只需要系统安装了gcc、make、以及automake和autoconf,源码安装的一般方法如下:
1、cd 源码目录
2、./configure [opts]
3、make
4、make install
其中configure后面的选项一般可以通过./configure --help来查询,根据自己的喜好使用一些选项。这里正确的工作流程是先看源码目录下面的Readme,这里一般会有提示安装方法,那么只需要按照描述照办即可,如果Readme没有提示(事实上很少),如果其中提及到官网,可以到官网去查阅相关安装文档,如果没有,可以google搜索软件的安装方法。
2. rpm包安装
RPM是RedHat Package Manager(RedHat软件包管理工具)的缩写,几乎在所有的Linux平台上都支持,已经成为行业标准。这里简单介绍一下包管理器,包管理器提供
对软件的安装、升级、查询以及卸载等,具体差别可以查阅相关文档。rpm包的安装非常简单,只需要输入rpm -i xxx.rpm 即可完成,卸载只需要rpm -e 包名 即可完成,升级通过rpm -U 包名 命令完成(需要机器联网),rpm -q 提供相关查询,这里不详细说明。如果机器没联网,rpm安装安装过程很有可能出现错误,最常见的就是依赖包缺失,把缺失的依赖包安装即可;如果在机器联网的情况下,rpm会自动在互联网搜索相关依赖包并安装。
3. deb包安装
deb是debian及其衍生版本如Ubuntu的安装包,在这两个系统的桌面环境下,可双击包直接安装,在命令行下可以通过dpkg-i xxx.deb完成,通过dpkg -r 包名
完成。很多的Linux分支都提供了apt-get包管理系统来对deb软件包进行支持,apt-get需要机器联网,通过source.list文件提供的源(下载源)去下载相应软件包,通过输入命令apt-get install 软件包名 直接安装软件,输入 apt-get remove 软件包名 卸载对应软件包,这里不赘述命令,apt-get 包管理器实施对依赖包的管理,所以非常方便。在国内可以找一些速度快的源(更改source.list文件),具体方法可以查阅相关文档。
4. yum安装软件包
Yum(全称为 Yellow dog Updater, Modified)是一个在Fedora和RedHat以及SUSE、CentOS中的软件包管理器,yum也对依赖关系进行管理,必须在联网条件下进行
(也可以给yum设置代理),使用yum安装软件也是本人最常用的方法,在shell命令行下输入yum install 软件包名 即可完成安装,如果依赖包没安装,会自动安装,卸载通过yum remove 包名 即可完成,与apt-get 类似。
Linux怎么升级软件版本
在Linux系统中,升级软件版本是常见的操作。了解如何正确升级,可以避免系统冲突,提高软件性能。本文将详细介绍Linux中几种主要的软件安装方式,及其升级方法。
一、系统包管理器安装
系统包管理器是Linux中常见的软件安装方式。例如在CentOS中,使用yum或dnf命令进行软件升级,如“yum update nginx”。此方法会自动更新软件及其所有依赖,确保系统稳定性。
优点:自动化管理,方便快捷,确保依赖关系的同步更新。
缺点:可能影响其他依赖软件,需谨慎操作。
二、源码编译安装
对于从源代码编译安装的软件,可先指定安装路径,如“./configure --prefix=/opt/nginx-1.”。编译新版本后,切换服务路径,实现升级。
优点:提供高度定制化,便于维护和管理。
缺点:操作复杂,容易出错,升级后需手动切换服务路径。
三、二进制包安装
二进制包安装是将软件打包为可直接执行的文件,如.tar.gz或.deb。在Linux中,此方法广泛应用于系统包管理器安装的软件。
优点:易于部署和使用,系统兼容性好。
缺点:升级可能需下载新包,操作相对繁琐。
四、AppImage
AppImage是一种打包格式,包含软件及其依赖,几乎可在所有Linux发行版上运行。适用于单文件应用。
优点:跨平台兼容性好,易于分发和部署。
缺点:需逐个下载AppImage文件,对于大型应用不适用。
五、Snap和Flatpak
Snap和Flatpak是统一Linux应用包格式的尝试,旨在让软件跨操作系统和发行版运行。
优点:提供更统一的软件部署和管理环境。
缺点:生态系统仍在发展中,兼容性和应用范围受限。
总结:在生产环境中,推荐使用系统包管理器或官方二进制包进行软件部署和升级,以避免影响其他依赖软件。避免使用系统组件,以免因系统升级导致服务异常。通过实践与理论结合,深入理解Linux软件管理,将有助于提高系统维护效率。
Mac平台下的FFmpeg的安装编译
在Mac平台上安装FFmpeg有三种途径:静态库下载、Homebrew安装和源码编译。每种方法各有优劣,适合不同的需求和学习目的。1. 静态库下载安装
从FFmpeg官网下载可执行文件,简单快捷但不利于深入学习。解压后,在终端运行即可,可设置环境变量方便全局使用。2. Homebrew安装
通过Homebrew安装较为简便,但不推荐。首先确保安装了必要的工具如CLT,然后通过brew uninstall卸载旧版本,执行相应指令安装。注意Homebrew 2.0后可能需要第三方仓库来关联编解码器选项。3. 源码编译安装
从官网下载源码,编译过程可能遇到依赖问题,但能深入研究FFmpeg。配置编译路径,然后执行编译安装,最后添加环境变量以使FFmpeg可用。4. iOS平台库编译
为了iOS开发,需要针对平台编译库文件。从指定地址下载编译脚本,对libfdk-aac和libx进行编译,完成后在工程中配置头文件和库文件路径。