1.Linux下源码安装的码管经验详解
2.linux软件包安装命令——apt-get
3.详解如何用源代码安装软件,以及如何卸载它
4.Linux软件管理-YUM工具及源码包
5.Linux 软件源码安装过程及一个经典的理软坑,以 Graphviz 为例
6.linux rpm命令详解
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中的。这样只会在当前命令窗口有效,xml源码解析当然,你也可以修改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之就可以咯!
linux软件包安装命令——apt-get
apt-get是Linux系统中APT软件包管理工具,通过shell命令行实现软件的安装、更新、卸载等操作。
1. 语法
apt-get (选项) (参数)
选项:
-c —— 指定配置文件
-o —— 直接指定配置参数
参数:
管理指令:对APT软件包的管理操作
软件包:指定要操控的软件包
2. 软件库
使用apt-get命令前需引入必要的软件库。软件库即软件包集合,spark 源码安装存在于互联网上的公共站点。安装、更新软件时,系统会自动从指定公共站点搜索相关软件。使用apt-get指令的前提是系统能连接外网。公共站点地址在配置文件/etc/apt/source.list中配置。其格式如下:
3. 常用指令
3.1 apt-get update —— 更新软件包信息库
更新软件包信息库。修改/etc/apt/sources.list或/etc/apt/preferences后运行该命令。Debian中,软件包通过数据库管理,跟踪已安装、未安装和可安装的软件包信息。apt-get安装软件包时,依靠数据库解决软件包依赖关系,自动安装相关软件。需定期运行该命令,保持数据库信息最新。
3.2 apt-get upgrade —— 更新所有已安装的软件包
软件包升级功能是APT系统成功的主要原因。通过该命令,可将软件升级到最新版本。使用该命令前,最好先运行apt-get update命令,更新软件包数据库。但该方案不是更新系统的最佳方法,一些包可能因包依赖问题保留旧版本软件包。Debian提供了一个更好的升级方案,即使用dis-upgrade。
3.3 apt-get dist-upgrade —— 更新整个Debian系统
更新整个Debian系统。可从网络或本地更新整个系统。它会重新安排包的依赖性。若有些包因某些原因无法更新,可通过以下命令查询原因:
# apt-get -o Debug::pkgProblemResolver=yes dist-upgrade
可用apt-show-versions -u获取可升级软件包列表。该命令还有其他有用选项,可用-h选项查看详细帮助,了解更多功能。
3.4 apt-get install packagename —— 安装新软件包
安装一个新软件包。若软件包需其他软件包支持,apt-get会通过搜索软件包数据库找到这种依赖关系,一起下载相关软件。在一个命令行中可同时安装多个软件包,中间用空格隔开。安装的软件包默认存放在/var/cache/apt/archives目录下,以便以后重新安装。若已安装的软件包损坏,可通过–reinstall选项重新安装。如:
# apt-get --reinstall install package_name
在需安装的表白程序 源码软件包名后加一个减号会删除软件包,如:apt-get install package_name-。
3.5 apt-get remove packagename —— 卸载已安装软件包(保留配置文件)
若想删除无用的软件包,只需使用该命令即可。此命令会保留软件的配置文件。不删除依赖软件包,且保留配置文件。
3.6 apt-get –purge remove package_name —— 卸载已安装软件包(不保留配置文件)
若想删除该软件的配置文件,可用–purge选项。类似地,在删除软件包名后加一个加号会安装软件包,如:apt-get remove package_name+。
不删除依赖软件包,删除配置文件。
3.7 apt-get autoremove packagename —— 卸载已安装软件包(卸载依赖软件)
删除为满足依赖而安装的、但现在不再需要的软件包(包括已安装包),保留配置文件。
3.8 apt-get autoclean —— 删除已卸载软件的安装包
apt会把已装或已卸的软件都备份在硬盘上,所以需要空间时,可以使用这个命令来清除已卸载的软件包的.deb文件。通过这种方式,可以释放大量的磁盘空间。若对空间的需求十分迫切,可以使用apt-get clean以释放更多空间。
3.9 apt-get clean —— 删除已卸载和已安装软件的安装包
删除安装的软件的备份。当我们通过apt-get安装软件包时,APT会把软件包下载到本地/var/cache/apt/archives/目录。该命令会删除该文件夹内除锁住外的所有软件包。
3. apt-file search filename
查找包含特定文件的软件包(不一定是已安装的),这些文件的文件名中含有指定的字符串。apt-file是一个独立的软件包。您必须先使用apt-get install来安装它,然后再运行apt-file update。若apt-file search filename输出的内容太多,您可以尝试使用apt-file search filename | grep -w filename(只显示指定字符串作为完整的单词出现在其中的那些文件名)或者类似方法,例如:apt-file search filename | grep /bin/(只显示位于诸如/bin或/usr/bin这些文件夹中的文件,如果您要查找的是某个特定的执行文件的话,这样做是有帮助的)。
3. apt-get source package_name
下载软件包的源码版本。
详解如何用源代码安装软件,以及如何卸载它
详解如何用源代码安装软件,以及如何卸载它 Linux发行版的一大优势在于包管理器和相关软件库,它们能提供自动化下载和安装软件的方式。然而,对于特定版本或自定义需求,从源代码安装软件仍是必要的。这篇文章将指导你完成从Linux系统中使用源代码安装程序,以及如何卸载这些程序。 在开始之前,首先需要了解包维护者可能无法提供所有可用软件的编译版本。因此,当遇到特定版本或自定义需求时,从源代码编译软件成为了一种常见做法。对于多数Linux用户来说,初次接触源代码编译可能感觉有些复杂,但一旦掌握,你将能进入更深入的软件定制世界。在Linux中从源代码安装软件
以安装NodeJS 8.1.1为例,本文将详细介绍此过程。NodeJS的源代码可在GitHub上的github.com/nodejs/node找到。 步骤1:获取源代码 直接从GitHub下载NodeJS 8.1.1版本的源代码。对于熟悉Git和版本管理的用户,推荐使用Git工具下载源代码。如果你更习惯于图形界面工具,使用ZIP文件同样可行。 步骤2:理解构建系统 构建系统负责编译源代码以生成可执行程序。NodeJS使用GNU风格的构建系统,其核心工具是configure和make。configure脚本检查系统配置并确保项目可以构建,而make工具则执行构建指令。 步骤3:使用文件系统层次化标准(FHS) 在Linux系统中,大部分遵循FHS标准来组织文件目录。对于从源代码安装的软件,推荐将它们安装在"/opt"目录下,以避免与系统软件包发生冲突,并便于管理。遇到错误时如何解决
在源代码编译过程中,可能出现各种错误。文章将通过实际操作,在Debian 9.0和CentOS 7.0系统上演示如何诊断并解决常见的编译问题。如何从源代码中对软件进行修改
从源代码安装软件后,你可以根据需要对其进行修改。以NodeJS为例,文章将指导你如何在源代码中进行微小的修改,并验证修改是否已纳入编译版本。让shell发现我们定制构建的软件
安装完软件后,通常需要通过绝对路径启动它。但更简单的方法是将软件添加到PATH环境变量中,或创建符号链接到常用路径。如何卸载从源代码安装的软件
卸载从源代码安装的软件只需删除安装目录,如"/opt/node-v8.1.1"。确保在操作前正确清理PATH环境变量,避免可能的依赖问题。依赖地狱在哪里?
编译软件时,可能会遇到依赖地狱的情况,即需要先编译前提条件所需的库,这些库又可能依赖其他不兼容的库。这通常是软件包维护者需要解决的问题。在本文示例中,NodeJS的依赖已预置在源代码中,无需额外处理。 通过遵循上述步骤,你可以熟练掌握从源代码安装和管理软件的技能。如果你对特定主题或更深入的讨论感兴趣,请在评论区分享,以便共同探讨。Linux软件管理-YUM工具及源码包
Linux软件管理中的YUM工具是Red Hat和CentOS系统中的重要组件,它简化了软件包管理,特别是通过互联网下载并自动处理依赖性。其主要功能包括联网获取软件、基于RPM管理、自动解决依赖、命令操作简便以及在生产环境中广泛使用。YUM工具的核心是yum源,即软件仓库,本地或网络皆可,如阿里云、清华大学源等。
配置yum源时,可以添加像EPEL这样的额外软件源,如nginx、zabbix和saltstack的官网下载的repo仓库。实践案例中,yum支持查询、安装、重装、更新和删除软件包,以及相关的仓库管理、缓存操作和包组指令。全局配置文件如yum.conf和.repo文件,影响了yum的行为,而rpm签名检查机制确保了软件包的完整性。
在无法联网的情况下,可以制作本地YUM仓库,涉及挂载镜像、备份和创建新的仓库文件等步骤。对于企业级环境,可能需要搭建一个提供基础和第三方软件的yum服务器。源码包则是未编译的程序代码,学习源码包有助于自定义软件、满足特定需求或在新版本发布初期安装。
源码包安装相对复杂,通常包括解压、配置、编译和安装四个步骤。通过实际编译Nginx,可以深入理解这个过程。至于自定义RPM包和制作YUM仓库,这涉及对软件包的定制和仓库的管理,以满足特定环境的需求。
Linux 软件源码安装过程及一个经典的坑,以 Graphviz 为例
Linux 系统中,源码安装软件是一种灵活且便于管理的方法。本文以 Graphviz 为例,详解从下载、解压到安装的全过程,并针对可能遇到的常见问题提供解决方案。安装步骤如下:
首先,在 Linux ubuntu 系统中下载 Graphviz 的压缩包。
接着,使用命令进行解压,命令中包含解析文件、指定文件格式和解压过程显示。解压后,软件位于 /usr/local 目录下。
随后,分析环境。在软件包内,会发现一个名为 configure 的文件,用于适应不同环境,生成可执行程序,并检查系统是否具备必要的外部工具与组件。通过 --prefix 参数,便于软件的卸载与移植。
生成程序阶段,使用命令编译可执行程序。在执行过程中,若遇到错误如“ld: can't find -lperl”,说明系统缺少某些动态链接库,需下载并安装这些库。随后再次安装可执行程序,至此成功完成安装。
值得注意的是,若在 Python 缺少 lib.so 文件时,下载 so 文件后,可能需要对 Python 进行重新编译。Makefile 是 configure 生成的文件,描述各部件间的联系与依赖,指导 make 命令编译最终程序。打包后的源代码通常包含一个特殊的 make 目标安装程序,用于将生成的可执行程序安装至系统目录,尤其是 /usr/local/bin 目录下。为了获得执行权限,使用 sudo 命令。
在源码安装过程中,可能会遇到编译链接失败的问题,这通常是由于缺少动态链接库所导致。C 程序执行过程包括编译、链接、生成可执行文件等步骤。在 Linux 系统中安装源码时,软件依赖系统动态链接库。因此,遇到安装相关问题时,多数情况是由于缺乏动态链接库。
综上所述,通过遵循上述步骤与注意事项,可以顺利地在 Linux 系统中完成 Graphviz 的源码安装,解决常见的安装问题。
linux rpm命令详解
linux系统下rpm命令是什么呢?下面是rpm命令的具体介绍:
1、rpm命令简介:
RPM是RedHat Package Manager(RedHat软件包管理工具)类似Windows里面的“添加/删除程序”
2、rpm 执行安装包:
二进制包(Binary)以及源代码包(Source)两种。二进制包可以直接安装在计算机中,而源代码包将会由RPM自动编译、安装。源代码包经常以src.rpm作为后缀名。
3、常用命令组合:
-ivh:安装显示安装进度–install–verbose–hash
-Uvh:升级软件包–Update;
-qpl:列出RPM软件包内的文件信息[Query Package list];
-qpi:列出RPM软件包的描述信息[Query Package install package(s)];
-qf:查找指定文件属于哪个RPM软件包[Query File];
-Va:校验所有的RPM软件包,查找丢失的文件[View Lost];
-e:删除包
rpm -q samba //查询程序是否安装
rpm -ivh /media/cdrom/RedHat/RPMS/samba-3.0.-1.4E.i.rpm //按路径安装并显示进度
rpm -ivh --relocate /=/opt/gaim gaim-1.3.0-1.fc4.i.rpm //指定安装目录
rpm -ivh --test gaim-1.3.0-1.fc4.i.rpm //用来检查依赖关系;并不是真正的安装;
rpm -Uvh --oldpackage gaim-1.3.0-1.fc4.i.rpm //新版本降级为旧版本
rpm -qa | grep pile vim-4.6-4.src.rpm #这个命令会把源代码解包并编译、安装它,如果用户使用命令:
rpm --rebuild vim-4.6-4.src.rpm #在安装完成后,还会把编译生成的可执行文件重新包装成i.rpm的RPM软件包。
举例:
[root@localhost RPMS]# rpm2cpio gaim-1.3.0-1.fc4.i.rpm |cpio -div
抽取出来的文件就在当用操作目录中的 usr 和etc中;
其实这样抽到文件不如指定安装目录来安装软件来的方便;也一样可以抽出文件;
为软件包指定安装目录:要加 -relocate 参数;下面的举例是把gaim-1.3.0-1.fc4.i.rpm指定安装在 /opt/gaim 目录中;
[root@localhost RPMS]# rpm -ivh --relocate /=/opt/gaim gaim-1.3.0-1.fc4.i.rpm
Preparing… ########################################### [%]
1:gaim ########################################### [%]
[root@localhost RPMS]# ls /opt/
gaim
年5款最佳Linux参考管理软件
年,对于Linux用户来说,寻找最佳的参考管理软件至关重要,因为它们能节省时间,提升学术写作效率。这些工具对于学生、教育工作者、作家、科学家和研究人员尤其有用,它们通过自动化引文处理,简化了学术文章和论文的撰写过程。 以下是五款备受推荐的Linux参考管理软件,它们各自具备独特的优势: Mendeley:全球热门的选择,拥有超过1亿篇文献资源。它支持跨设备访问,允许创建个人图书馆,自动同步引文和笔记。虽然Mendeley与Microsoft Word的集成在Linux上受限,但通过ONLYOFFICE Docs和LibreOffice插件,它仍具有兼容性。 JabRef:开源的书目管理器,支持种格式,适合博士生和研究人员,特别适合BibTeX格式的管理。它具有全文检索、元数据编辑和自定义引文样式的能力。 Zotero:开源且隐私友好,允许本地存储,适用于网页、书籍和PDF文件的收集。Zotero与多种办公套件如LibreOffice和Google Docs高度集成。 WIKINDX:开源的单用户或多用户虚拟研究环境,提供所见即所得的编辑器和组件系统,适合需要灵活研究环境的用户。 Docear:一个全面的学术文献套件,包含数字图书馆、PDF工具和思维导图功能,特别适合需要一站式学术写作解决方案的用户。 总结来说,Linux用户在选择参考管理软件时应考虑自身的具体需求,例如是否需要云存储、跨平台兼容性以及集成到其他工具的能力。尝试这些工具,找到最适合你的那一款,让学术研究更加高效。