皮皮网
皮皮网

【osquery源码解析】【水利系统源码】【麻将茶馆源码】源码删除重新安装

时间:2024-12-28 18:27:11 来源:综合门户 源码

1.linux系统中程序的源码安装.卸载和升级教程
2.详解如何用源代码安装软件,以及如何卸载它
3.Linux下源码安装的删除经验详解
4.源码方式安装特定版本 Linux Kernel 步骤
5.怎么删除python安装包

源码删除重新安装

linux系统中程序的安装.卸载和升级教程

       对于Linux初学者来说,RPM安装是重新一个不错的选择。如果想真正掌握Linux系统,安装源代码安装仍然是源码Linux下软件安装的重要手段。由于linux系统中应用软件的删除osquery源码解析安装和大家熟悉的windows下面的软件的安装过程存在很大的区别,在linux中,重新根据下载到安装包的安装格式的不同用不同的安装方法,下面将对linux下的源码应用程序安装进行总结和归纳。

       1、删除源代码包的重新安装

       gzip -d apache_1.3..tar.gz (解压)

       tar xvf apache_1.3..tar (解包)

       cd apache_1.3.

       ./configure (配置) ----./configure --help(查看configure选项)

       make (编译)

       make install (安装)

       make clean (卸载)

       注:典型的源代码包可以这样安装,但不都是安装这样,如webmin

       要执行其目录下./setup.sh进入交互式配置安装

       卸载用uninstall程序

       具体如果不清楚看要安装的源码包下的README文件

       2、RPM包的删除安装

       RPM软件包的一个例子:

       foo-1.0-1.i.rpm

       其中包括软件包的名称(foo),版本号(1.0),重新发行号(1),和硬件平台(i)。

       (1)安装

       # rpm -ivh foo-1.0-1.i.rpm

       foo

       #######################

       A. 软件包已被安装

       # rpm -ivh foo-1.0-1.i.rpm

       foo package foo-1.0-1 is already installed

       error: foo-1.0-1.i.rpm cannot be installed

       如果你仍旧要安装该软件包,你可以在命令行上使用--replacepkgs 选项,这将忽略该错误信息。

       B. 文件冲突

       如果要安装的软件包中有一个文件已在安装其它软件包时安装,会出现以下错误信息:

       # rpm -ivh foo-1.0-1.i.rpm

       foo /usr/bin/foo conflicts with file from bar-1.0-1

       error: foo-1.0-1.i.rpm cannot be installed

       要想让RPM 忽略该错误信息, 请使用--replacefiles 命令行选项

       C.未解决依赖关系

       RPM软件包可能依赖于其它软件包, 在安装了特定的软件包之后才能安装该软件包。

       # rpm -ivh bar-1.0-1.i.rpm

       failed dependencies:

       foo is needed by bar-1.0-1

       你必须安装完所依赖的软件包,才能解决这个问题。如果想强制安装 (但是,这样安装后的软件包未必能正常运行),请使用-nodeps 命令行选项。

       (2) 卸载

       # rpm -e foo

       注意:这里使用软件包的名字foo,而不是软件包文件的名字“foo-1.0-1.i.rpm”.

       如果其它软件包依赖于你要卸载的软件包,卸载时则会产生错误信息。如:

       # rpm -e foo

       removing these packages would break dependencies:

       foo is needed by bar-1.0-1

       要想RPM忽略该错误信息继续卸载的话 (但是,依赖于该软件包的程序可能无法运行), 请使用-nodeps 命令行选项。

       (3)升级

       # rpm -Uvh foo-2.0-1.i.rpm

       foo

       ###############################

       当使用旧版本的软件包来升级新版本的软件时,会产生以下错误信息:

       # rpm -Uvh foo-1.0-1.i.rpm

       foo package foo-2.0-1 (which is newer) is already installed

       error: foo-1.0-1.i.rpm cannot be installed

       要使RPM 坚持这样“升级”,可使用--oldpackage 命令行参数。

       (4)查询

       # rpm -q foo

       foo-2.0-1

       软件包指定选项:

       -a 查询所有已安装的水利系统源码软件包.

       -f  file  将查询包含有文件的软件包

       -p  packagefile 查询软件包文件名为 packagefile 的软件包

       信息选择选项:

       -i 显示软件包信息,如描述, 发行号, 尺寸, 构建日期, 安装日期, 平台, 以及其它各类信息。

       -l 显示软件包中的文件列表。

       -s 显示软件包中所有文件的状态。

       -d 显示被标注为文档的文件列表(man 手册, info 手册, README's, etc).

       -c 显示被标注为配置文件的文件列表。这些是要在安装完毕以后加以定制的文件(sendmail.cf, passwd, inittab, etc)。

       对于那些要显示文件列表的文件,可以增加-v 命令行选项以获得如同 ls -l 格式的输出。

       (5)验证

       验证软件包是通过比较软件包中安装的文件和软件包中的原始文件信息来进行的。除了其它一些东西,验证主要是比较文件的尺寸, MD5 校验码, 文件权限, 类型, 属主和用户组等。

       rpm -V命令用来验证一个软件包,如

       rpm -V foo

       验证包含特定文件的软件包: rpm -Vf /bin/vi

       验证所有已安装的软件包: rpm -Va

       根据一个RPM来验证某个软件包: rpm -Vp foo-1.0-1.i.rpm

       如果你担心RPM数据库已被破坏,就可以使用这种方式。如果一切校验均正常将不会产生任何输出。如果有不一致的地方,就会显示出来。

       输出格式是8位长字符串,c 用以指配置文件,接着是文件名. 8位字符的每一个用以表示文件与RPM数据库中一种属性的比较结果。“.” (点)表示测试通过。

       以下字符表示某种测试的失败:

       5 MD5 校验码

       S 文件尺寸

       L 符号连接

       T 文件修改日期

       D 设备

       U 用户

       G 用户组

       M 模式e (包括权限和文件类型)

       如果有信息输出,应当认真加以考虑,是删除,重新安装,还是修正出现的问题。

       (6)RPM应用的几个例子

       A. 如你误删了一些文件, 但是不能肯定到底删除了哪些文件。如果你想验证一下整个系统看看都丢失了哪些文件的话,可以键入:rpm –Va

       B.若是一些文件丢失了或已被损坏, 就可以重新安装或先卸载再安装该软件包。如果碰到了一个自己不认识的文件,要想查处它属于哪个软件包,可以输入以下命令:rpm -qf /usr/XR6/bin/xjewel

       而输出的结果会是: xjewel-1.6-1

       C. 如果发生综合以上两个例子的情况,如文/usr/bin/paste出了问题。你想验证一下拥有该文件的软件包,可又不知道软件包的名字,这时可以简单的键入:rpm -Vf /usr/bin/paste

       这样相应的软件包就会被验证。

       D. 如果你想了解一个正在使用的麻将茶馆源码程序的详细信息,可以键入如下命令来获得拥有该程序的软件包中的文档信息:rpm -qdf /usr/bin/ispell

       输出结果为:

       /usr/man/man4/ispell.4

       /usr/man/man4/english.4

       …………………………………………………………

       E. 如果你发现了一个新的koules RPM,但是不知道它是什么东西,可以键入如下命令:rpm -qip koules-1.2-2.i.rpm

       F. 现在你想了解koules RPM 所安装的文件。可以键入:rpm -qlp koules-1.2-2.i.rpm

       图形管理工具:kpackage

       3、shell或java脚本安装

       基于图形界面的安装,一般基于SHELL或Java语言编写,主要应用于一些办公软件和制图软件及安装程序,如staroffice、oracle的安装,很容易,和windows一样/packagefile /packagefile /file/file

详解如何用源代码安装软件,以及如何卸载它

       详解如何用源代码安装软件,以及如何卸载它

       Linux发行版的一大优势在于包管理器和相关软件库,它们能提供自动化下载和安装软件的方式。然而,对于特定版本或自定义需求,从源代码安装软件仍是必要的。这篇文章将指导你完成从Linux系统中使用源代码安装程序,以及如何卸载这些程序。

       在开始之前,首先需要了解包维护者可能无法提供所有可用软件的编译版本。因此,当遇到特定版本或自定义需求时,从源代码编译软件成为了一种常见做法。对于多数Linux用户来说,初次接触源代码编译可能感觉有些复杂,但一旦掌握,你将能进入更深入的软件定制世界。

       在Linux中从源代码安装软件

       以安装NodeJS 8.1.1为例,本文将详细介绍此过程。NodeJS的源代码可在GitHub上的github.com/nodejs/node找到。

       步骤1:获取源代码

       直接从GitHub下载NodeJS 8.1.1版本的源代码。对于熟悉Git和版本管理的用户,推荐使用Git工具下载源代码。如果你更习惯于图形界面工具,tp漫画源码使用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下源码安装的经验详解

       在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之就可以咯!

源码方式安装特定版本 Linux Kernel 步骤

       源码方式安装特定版本Linux Kernel 步骤详解

       本文将详细介绍通过源码方式安装指定版本Linux Kernel(本文以6.2.0版本为例)的步骤。在安装过程中,您需要下载软件仓库(upstream),配置内核以适应特定需求,并最终完成内核的安装。此外,您将学习如何更新Grub配置以确保系统使用新内核启动。

       安装前准备:确认操作系统为RHEL(Linux)环境,并拥有root权限。所有命令默认在root权限下执行。确保基础的Linux开发工具已安装,安装过程中如需补充工具则会自动进行。

       步骤1:下载并切换到特定版本的Linux Kernel仓库

       1.1 下载Linux Kernel仓库至/home目录,后续命令将自动安装于适当位置,无需更改文件名。对于6.2.0版本,无需特别修改文件名。

       步骤2:配置内核以自定义属性

       2.1 使用配置工具自定义内核属性。有多种方式:完全重新配置或导入并修改之前的配置文件(.config),最终生成新的配置文件(.config),旧配置文件则命名为(.config.old)。

       步骤3:编译Linux Kernel生成bzImage文件

       步骤4:默认安装Linux Kernel模块,存储于/lib/modules文件夹。

       步骤5:安装Linux Kernel,自动安装至/boot文件夹下,包含System.map-6.2.0-upstream、initramfs-6.2.0-upstream.img、vmlinuz-6.2.0-upstream,更新链接关系至新生成文件。

       更新Grub配置

       1.1 设置启动内核,使用--set-default参数后跟启动的Linux Kernel版本。

       1.2 选择启动cmdline(非必要),使用--remove-args和--args参数添加或删除cmdline参数。

       1.3 查看Grub配置。

       1.4 生成新的Grub配置文件,位置根据服务器启动方式决定。

       重新启动计算机并配置Linux Kernel

       若服务器包含其他Linux Kernel版本,指定特定版本内核并设置启动命令行参数。

       1.1 修改启动命令行参数(若需要)。

       1.2 重新安装Linux Kernel,删除旧版本文件。操作原因:安装过程自动链接相关文件,重新设置链接关系。删除旧文件标记为.old。

       1.3 重新生成/boot/grub/grubenv文件,并验证配置。

       1.4 重启计算机。

       检查安装结果

       通过命令检查Linux Kernel版本,确认安装过程无误。

       本文详细介绍了源码方式安装特定版本Linux Kernel的完整步骤,包括下载仓库、配置内核、编译及安装内核,以及更新Grub配置。最后,通过重启计算机验证安装结果。希望此指南能够帮助您顺利完成Linux Kernel的安装。

怎么删除python安装包

       怎么删除python安装包

       python 安装模块,一般pip 或者 python setup.py install.反之 卸载的话,一般是直接删除module 文件夹,或者通过record记录去自动删除,具体如下。

       一、源码包安装的删除

       我们使用 python setup.py install 来安装python包,但是如何卸载呢?

       只能手动删除安装的文件,可以使用如下命令:

       linux下的删除:

       # python setup.py install --record files.txt 记录安装后文件的路径

       # cat files.txt | xargs rm -rf 删除这些文件

       windows下的删除:

       C:\selenium-2..0>python setup.py install --record ./record.txt

       C:\selenium-2..0>FOR /F %f in (record.txt) DO del %f

       二、easy_install 安装的删除

       以下从豆瓣上看到方法

       If you have replaced a package with another version, then you can just delete the package(s) you don't need by deleting the PackageName-versioninfo.egg file or directory (found in the installation directory).

       If you want to delete the currently installed version of a package (or all versions of a package), you should first run:

       easy_install -m PackageName

       This will ensure that Python doesn't continue to search for a package you're planning to remove. After you've done this, you can safely delete the .egg files or directories, along with any scripts you wish to remove.

       就是运行:easy_install -m PackageName

       完了,你在C:\Python\Lib\site-packages\下,删除模块文件夹就好了。

更多内容请点击【综合】专栏