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中的。这样只会在当前命令窗口有效,Caf源码和aosp源码当然,你也可以修改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命令前需引入必要的软件库。软件库即软件包集合,源码狗免费源码分享存在于互联网上的公共站点。安装、更新软件时,系统会自动从指定公共站点搜索相关软件。使用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用户在选择参考管理软件时应考虑自身的具体需求,例如是否需要云存储、跨平台兼容性以及集成到其他工具的能力。尝试这些工具,找到最适合你的那一款,让学术研究更加高效。