Linux 应用程序基础
Linux 命令与应用程序的区别
命令 | 应用程序 | |
存放位置 | /bin /sbin | /usr/bin /usr/sbin /usr/local/bin /usr/local/sbin |
进程 | 只命令运行执行时存在 | 运行时持续存在 |
Linux 应用程序的组成:
普通的可执行程序文件:一般保存在/use/bin 目录中,普通用户即可执行。
服务器程序,管理程序文件:一般保存在/uar/sbin目录中,只有管理员可执行
配置文件:一般保存在/etc目录中,配置文件较多时会建立相应的子目录。
日志文件:一般保存在/var/log目录中。
关于应用程序的参考文档等数据:一般保存在/usr/share/doc目录中。
执行文件及配置文件等数据:一般保存在/usr/share/man目录中。
软件包的封装类型
软件包的封装类型主要包括以下几种:
- RPM软件包:RPM是Red Hat Linux的一种包封装格式,文件扩展名为“.rpm”。它只能在支持RPM机制的Linux操作系统中安装,如RHEL、Fedora和CentOS等。安装RPM软件包通常需要使用RPM命令或yum命令。
- DEB软件包:这是Debian Linux的包封装格式,文件扩展名为“.deb”。它只能在使用DPKG机制的Linux操作系统中安装,如Debian和Ubuntu等。安装deb软件包需要使用dpkg命令。
- 源代码软件包:这种软件包包含程序开发的原始代码,通常以“.tar.gz”、“tar.bz2”或“.tgz”等后缀命名。由于它们多数是由Unix系统打包工具tar打包的,因此也常被称为“TarBall”。安装源码需要使用相应的编译工具,如Linux中的C/C++语言编译器gcc和gcc-c++。
- 二进制软件包:这类软件包以“.bin”为扩展名,通常包含用于安装的可执行程序或脚本文件,如ruinstall.sh和setup等。安装时只需运行相应的安装文件并遵循向导程序的提示即可完成安装操作。
不同封装类型的优缺点及适用场景:
- RPM和DEB软件包:这些二进制包格式的优点是安装简便,依赖关系由包管理器自动处理。缺点是灵活性较低,因为它们是针对特定发行版设计的。适用于大多数用户,特别是那些不希望手动配置依赖关系的用户。
- 源代码软件包:优点是高度灵活,用户可以根据需要修改源代码。缺点是需要一定的编译知识,且安装过程较为复杂。适用于开发人员或需要定制软件功能的用户。
- 二进制软件包:优点是安装简单,通常不需要编译过程。缺点是可能缺乏灵活性,因为它们通常是针对特定硬件或操作系统版本优化的。适用于希望快速部署且不需要太多自定义的用户。
RPM
概况:
rpm命令是RPM软件包的管理工具。rpm原本是Red Hat Linux发行版专门用来管理Linux各项套件的程序,由于它遵循GPL规则且功能强大方便,因而广受欢迎。逐渐受到其他发行版的采用。RPM套件管理方式的出现,让Linux易于安装,升级,间接提升了Linux的适用度。
rpm常见命令参数
用法: rpm [选项]
查询
-a:查询所有套件;
-c:只列出组态配置文件,本参数需配合"-l"参数使用;
-d:只列出文本文件,本参数需配合"-l"参数使用;
-f<文件>+:查询拥有指定文件的套件;
-i:显示套件的相关信息;
-l:显示套件的文件列表;
-p<套件档>+:查询指定的RPM套件档;
-q:使用询问模式,当遇到任何问题时,rpm指令会先询问用户;
-R:显示套件的关联性信息;
-s:显示文件状态,本参数需配合"-l"参数使用;
安装,升级,卸载
-b<完成阶段><套件档>+或-t <完成阶段><套件档>+:设置包装套件的完成阶段,并指定套件档的文件名称;
-e<套件档>或--erase<套件档>:删除指定的套件;
-h或--hash:套件安装时列出标记;
-i<套件档>或--install<套件档>:安装指定的套件档;
-U<套件档>或--upgrade<套件档>:升级指定的套件档;
-v:显示指令执行过程;
-vv:详细显示指令执行过程,便于排错。
维护RPM数据库
RPM数据库是RPM包管理机制的核心组成部分,用于记录和管理安装在Linux系统中的软件包信息。记录软件包信息,依赖关系。
当RPM数据库发生损坏,且操作系统无法自动修复时。可用rpm命令的“—rebuilddb"或”—initdb“功能对RPM数据库进行重建。
在Linux/UNIX 应用领域,相对一部分厂商会对发布的软件包进行数字签名,以确保软件的完整性。用户可利用官方的公钥文件,对下载的软件包进行验证,判断软件包是否被篡改。
OpenEuler 的DVD光盘中默认提供了用于数字签名的公钥文件,在/media/cdrom/RPM-GPG-KEY-openEuler 文件。向RPM数据库中导入公钥文件时,需用”—import“选项。
编译安装
一、环境准备
安装必要工具
在 Linux 环境下,通常需要以下工具:
- 编译器:
gcc
或clang
- 构建工具:
make
- 其他依赖:
autoconf
,automake
,libtool
2. 下载源码
源码通常以 .tar.gz
或 .tar.bz2
的形式提供
二、运行 ./configure
./configure 是自动生成的配置脚本,用于检查系统环境,生成适合当前系统的编译配置。以下是配置过程的所有选项说明
- 路径相关选项 选项 功能 默认值 示例 --prefix=DIR 软件安装的根目录 /usr/local --prefix=/opt/myapp --exec-prefix=DIR 架构相关文件的安装路径 $prefix --exec-prefix=/usr --bindir=DIR 可执行文件安装路径 $exec_prefix/bin --bindir=/usr/bin --libdir=DIR 库文件安装路径 $exec_prefix/lib --libdir=/opt/myapp/lib --includedir=DIR 头文件安装路径 $prefix/include --includedir=/opt/include
prefix
的用途
prefix
是通过 ./configure --prefix=DIR
选项指定的路径。其主要作用是告诉构建系统,安装的文件应该放在哪个目录下。
$prefix
的默认值通常是:/usr/local
如果你运行以下命令:./configure --prefix=/opt/myapp
那么,安装路径会变成以下结构:
/opt/myapp/bin # 可执行文件
/opt/myapp/lib # 库文件
/opt/myapp/include # 头文件
/opt/myapp/share # 共享资源(如文档、手册)
在配置阶段指定通过 ./configure
的 --prefix
参数可直接指定目录
三、编译源码
运行 make
命令开始编译
- 加速编译
利用多核 CPU:
make -j$(nproc)
- 常见问题
如果出现依赖问题,请根据报错信息安装缺失的库。
四、测试编译结果
在安装前,可以运行测试(如果源码支持):
make test 或 make check
五、安装编译结果
运行 make install
安装编译完成的文件到目标路径
安装完成后,检查安装路径下是否有生成的文件:ls /opt/myapp
六、卸载
如果需要卸载,使用 make uninstall