首页 > 编程语言 >安装及管理程序

安装及管理程序

时间:2023-07-23 16:12:31浏览次数:43  
标签:httpd 48 管理程序 安装 rpm root localhost 2.4

安装及管理程序

开发语言

系统级开发

汇编语言

C

C++

应用级开发

java

Python

go

php

perl

delphi

Linux源码包

实际上,源码包就是一大堆源代码程序,是由程序员按照特定的格式和语法编写出来的

Linux二进制包

二进制包,也就是源码包经过成功编译之后产生的包。由于二进制包在发布之前就已经完成了编译的工作,因此用户安装软件的速度较快(同 Windows下安装软件速度相当),且安装过程报错几率大大减小。

源码包 VS RPM二进制包

源码包一般包含多个文件,为了方便发布,通常会将源码包做打包压缩处理,Linux 中最常用的打包压缩格式为“tar.gz”,因此源码包又被称为 Tarball。

总的来说,使用源码包安装软件具有以下几点好处:

  • 开源。如果你有足够的能力,则可以修改源代码。

  • 可以自由选择所需的功能。

  • 因为软件是编译安装的,所以更加适合自己的系统,更加稳定,效率也更高。

  • 卸载方便。

但同时,使用源码包安装软件也有几点不足:

  • 安装过程步骤较多,尤其是在安装较大的软件集合时(如 LAMP 环境搭建),容易出现拼写错误。

  • 编译时间较长,所以安装时间比二进制安装要长。

  • 因为软件是编译安装的,所以在安装过程中一旦报错,新手很难解决

  1. 考虑到用户安装软件的难度

  2. 厂商直接 将包做成二进制方便使用

预处理(Pre-Processing)

所有的#define删除,并且展开所有的宏定义

2)处理所有的条件预编译指令,比如#if #ifdef #elif #else #endif等

3)处理#include 预编译指令,将被包含的文件插入到该预编译指令的位置。

4)删除所有注释 "//"和"/* */".

5)添加行号和文件标识,以便编译时产生调试用的行号及编译错误警告行号。

6)保留所有的#pragma编译器指令,因为编译器需要使用它们

  • 编译 (Compiling)

编译过程就是把预处理完的文件进行一系列的词法分析,语法分析,语义分析及优化后,最后生成相应的汇编代码

  • 汇编 (Assembling)

汇编器是将汇编代码转变成机器可以执行的命令,每一个汇编语句几乎都对应一条机器指令。汇编相对于编译过程比较简单,根据汇编指令和机器指令的对照表一一翻译即可

  • 链接 (Linking)

通过调用链接器ld来链接程序运行需要的一大堆目标文件,以及所依赖的其它库文件,最后生成可执行文件

#分步骤编译运行
gcc -E hello.c -o hello.i 对hello.c文件进行预处理,生成了hello.i 文件
gcc -S hello.i -o hello.s 对预处理文件进行编译,生成了汇编文件
gcc -c hello.s -o hello.o 对汇编文件进行编译,生成了目标文件
gcc hello.o -o hello 对目标文件进行链接,生成可执行文件
#一步实现编译过程
gcc hello.c -o hello 直接编译链接成可执行目标文件



#include<stdio.h>

int main()

{

printf("Hello World!\n");

}

[root@localhost nginx-1.18.0]#find -name "*.c" -exec cat {} \;|wc -l
#查看 nginx 包里有多少行
179605

ldd

1.应用程序与系统命令的关系

1.对比系统命令和应用程序的不同

  • 位置: Linux中一切皆为文件 演示内部命令和外部命令 位置 应用程序位置

  • 用途: 命令主要处理系统的基本操作(复制,配置) 应用程序可以完成独立的任务浏览器访问网页

  • 使用环境 字符界面 字符和桌面

  • 格式 命令的格式 命令参数对象 无固定格式

2.典型应用程序的目录结构

文件类型保存目录
普通执行程序文件 /usr/bin
服务器执行程序文件和管理程序文件 /usr/sbin
应用程序配置文件 /etc
日志文件 /var/log
应用程序参考文档文件 /usr/share/doc

3.常见的软件包封装类型

文件类型保存目录
RPM软件包 扩展名为“.rpm”
DEB软件包 扩展名为“.deb”
源代码软件包 一般为“.tar.gz”、“.tar.bz2”等格式的压缩包 包含程序的原始代码
绿色免安装的软件包 软件包的扩展名不一,以TarBall格式的居多 在压缩包内提供已编译好的执行程序文件 解开压缩包后的文件即可直接使用
  1. RPM包 : RPM Package Manager的缩写 是红帽公司自主研发的一款工具,实用性强。RPM包是预先在linux机器上编译好并打包好的文件,安装起来非常快捷。但是也有一些缺点,比如安装的环境必须与编译时的环境一致或者相当;包与包之间存在相互依赖的情况。

  2. DEB包:在Linux系统中类似于windows中的软件包(exe),几乎不需要什么复杂的编译即可通过鼠标点击安装使用。此外,deb广泛应用于越狱后iOS软件及MeeGo(含Maemo软件)中。Debian包是将包的文件信息以及包内容,经过gzip和tar打包而成。

  3. 源代码软件包 :是需要我们自己把源代码编译成二进制的可执行文件。如果你读得懂这些源代码,那么你就可以去修改这些源代码自定义功能,然后再去编译成你想要的。使用源码包的好处除了可以自定义修改源代码外还可以定制相关的功能,因为源码包在编译的时候是可以附加额外的选项的。

  4. 绿色免安装的软件包 :顾名思义自行理解比如Windows的截图软件

查看rpm包里面的内容及安全性

[root@localhost Packages]# rpm2cpio tree-1.6.0-10.el7.x86_64.rpm |cpio -tv



[root@localhost data]#rpm -qa 'gpg-pubkey*'
gpg-pubkey-f4a80eb5-53a7ff4b
[root@localhost data]#rpm -e gpg-pubkey-f4a80eb5-53a7ff4b
[root@localhost data]#rpm -K tree-1.6.0-10.el7.x86_64.rpm
[root@localhost data]#echo xx>> tree-1.6.0-10.el7.x86_64.rpm
[root@localhost data]#rpm -K tree-1.6.0-10.el7.x86_64.rpm
tree-1.6.0-10.el7.x86_64.rpm: RSA sha1 (MD5) PGP MD5 不正确

软件包中的文件分类

4.RPM包管理工具

Red-Hat Package Manager

由Red Hat公司提出,被众多Linux发行版所采用

建立统一的数据库文件(一张对应表将信息写入)

详细记录软件包安装、卸载等变化信息

自动分析软件包依赖关系

RPM软件包 软件素材参考:http://www.rpm.org

4.1一般命名格式

bash-4.1.2-15.el6_4.x86_64.rpm

bash shell环境 版本信息 4.1.2 15发布次数 x86_64硬件(为“i386”或“i686”等)

4.2拆包后的分类

[root@localhost Packages]# ll httpd*
-rw-rw-r--. 2 root root 2835196 8月  11 2017 httpd-2.4.6-67.el7.centos.x86_64.rpm
-rw-rw-r--. 2 root root  197360 8月  11 2017 httpd-devel-2.4.6-67.el7.centos.x86_64.rpm
-rw-rw-r--. 2 root root 1402824 8月  11 2017 httpd-manual-2.4.6-67.el7.centos.noarch.rpm
-rw-rw-r--. 2 root root   89284 8月  11 2017 httpd-tools-2.4.6-67.el7.centos.x86_64.rpm
#主包 开发包   手册包   工具包

4.3程序包管理器相关文件

  1. 包文件组成 (每个包独有)

  • 包内的文件

  • 元数据,如:包的名称,版本,依赖性,描述等

  • 可能会有包安装或卸载时运行的脚本

  1. 数据库(公共):/var/lib/rpm (安装好后会将一些公共的数据放入数据库中)

  • 程序包名称及版本

  • 依赖关系

  • 功能说明

  • 包安装后生成的各文件路径及校验码信息

[root@localhost Packages]# ll /var/lib/rpm
#很关键安装卸载包都需要
总用量 96744
-rw-r--r--. 1 root root  4157440 8月  27 09:30 Basenames
-rw-r--r--. 1 root root    16384 8月  27 09:30 Conflictname
-rw-r--r--. 1 root root   311296 8月  27 10:07 __db.001
-rw-r--r--. 1 root root    90112 8月  27 10:07

软件包之间可能存在依赖关系,甚至循环依赖,即:A包依赖B包,B包依赖C包,C包依赖A包

安装软件包时,会因为缺少依赖的包,而导致安装包失败。

5.rpm命令的格式

RPM软件可以实现几乎所有的功能,新增,删除,更新等

5.1查询

选项功能效果
rpm -qa(all) 显示当前系统中以 RPM 方式安装的所有软件列表
rpm -q 软件名 查询指定软件是否已安装
rpm -qi 软件名 查看指定软件包的名称、版本、许可协议、用途描述等详细信息
rpm -ql(list) 软件名 显示指定的软件包在当前系统中安装的所有目录、文件列表
rpm -qc (configfiles ) 软件名 列出已安装的指定软件的配置文件
rpm -qd(docfiles) 软件名 列出已安装的指定软件的软件包文档所在位置
rpm -qR (requires) 软件名 列出已安装的指定软件的依赖的软件包及文件
rpm -qf(file) 软件名 查看指定的文件或目录是由哪个软件包所安装的
rpm-qpd 查询未安装指定软件包的文档位置
rpm -qpi 查询未安装指定软件包的完整名称详细信息
rpm -qpl 查询未安装指定软件包的文件列表
rpm -qpc 查询未安装指定软件包的配置文件位置

5.2挂载:

mount 设备 加文件夹路径 (已存在且是空的文件夹,原来的数据将被隐藏)

挂载规则

  • 一个挂载点同一时间只能挂载一个设备

  • 一个挂载点同一时间挂载了多个设备,只能看到最后一个挂载设备的数据,其它设备上的数据将被隐藏

  • 一个设备可以同时挂载到多个挂载点

  • 通常挂载点一般是已存在空的目录

5.3 安装卸载升级

基本格式

rpm [选项] rpm软件包

选项效果
-i 安装一个新的RPM软件包
-U 升级某个软件包,若未安装过则进行安装
-F 升级某个软件包,若未安装过则直接结束
-h 在安装或升级过程中已#号显示读条
-v 显示安装过程的详细信息
--force 强制安装某个软件包
-e 软件名 卸载指定的软件
--nodeps 在安装或升级、卸载一个软件包时,不检查与其他包的依赖关系
[root@localhost Packages]#rpm -e tree
[root@localhost Packages]#rpm -ive tree

[root@localhost Packages]# rpm -ivh httpd-2.4.6-67.el7.centos.x86_64.rpm
#进入
错误:依赖检测失败:
httpd-tools = 2.4.6-67.el7.centos 被 httpd-2.4.6-67.el7.centos.x86_64 需要
安装路径含 义
/etc/ 配置文件安装目录
/usr/bin/ 可执行的命令安装目录
/usr/lib/ 程序所使用的函数库保存位置
/usr/share/doc/ 基本的软件使用手册保存位置
/usr/share/man/ 帮助文件保存位置
5.4维护RPM 数据库

1.重建RPM数据库

当RPM 数据库发生损坏,可通过 重建RPM 数据库 修复

rpm --rebuild 或者 rpm --initdb

2.导入验证公钥

在没有导入用于数字签名验证的公钥之前,安装光盘中的一部分RPM 包时会报错。需要向RPM数据库中导入位于光盘根目录下的公钥文件。

/var/lib/rpm
#安装文件的信息都在这个里面
[root@localhost Packages]# mount /dev/sr0
[root@localhost Packages]# rpm --import /mnt/RPM-GPG-KEY-CentOS-7

例子安装tree

[root@localhost Packages]# mount /dev/sr0 /mnt/
[root@localhost Packages]# df
文件系统                   1K-块   已用   可用 已用% 挂载点
/dev/mapper/centos-root 10475520 4733364 5742156   46% /
devtmpfs                  917600       0  917600    0% /dev
tmpfs                     933524    5400  928124    1% /dev/shm
tmpfs                     933524    9188  924336    1% /run
tmpfs                     933524       0  933524    0% /sys/fs/cgroup
/dev/sda1                5223424  182388 5041036    4% /boot
/dev/sr0                 4414592 4414592       0  100% /mnt
tmpfs                     186708      36  186672    1% /run/user/0
[root@localhost ~]# cd /mnt/Packages/
[root@localhost Packages]# ls
[root@localhost Packages]# ls |grep tree
texlive-pst-tree-svn24142.1.12-38.el7.noarch.rpm
tree-1.6.0-10.el7.x86_64.rpm
[root@localhost Packages]# rpm -ivh tree-1.6.0-10.el7.x86_64.rpm
准备中...                          ################################# [100%]
正在升级/安装...
  1:tree-1.6.0-10.el7                ################################# [100%]

[root@localhost Packages]# rpm -e tree
#卸载tree软件包
[root@localhost Packages]# rpm -qa |grep tree




rpm2cpio tree-1.6.0-10.el7.x86_64.rpm |cpio -tv
#查看rpm包里的信息

6.编译安装

大部分是c语言开发的,更方便的使用

  1. 软件版本比较新,新功能,修复bug

  2. 可以自行定义配置文件的路径

  3. 源码可能有100个功能,红帽认为你可能不需要会自行处理砍掉,自行定制50

程序包编译安装:

源代码-->预处理-->编译-->汇编-->链接-->执行

多文件:文件中的代码之间,很可能存在跨文件依赖关系

虽然有很多开源软件将软件打成包,供人们使用,但并不是所有源代码都打成包,如果想使用开源软

件,可能需要自已下载源码,进行编译安装。另外即使提供了包,但是生产中需要用于软件的某些特

性,仍然需要自行编译安装。但是利用源代码编译安装是比较繁琐的,庆幸的是有相关的项目管理工具

可以大大减少编译过程的复杂度

#预先安装以下软件<实验见下一章> yum -y install gcc gcc-c++ make pcre-devel expat-devel perl pcre apr*

[root@localhost ~]# mkdir /bianyi
[root@localhost ~]# cd /bianyi/
[root@localhost bianyi]# wget https://mirrors.bfsu.edu.cn/apache//httpd/httpd-2.4.48.tar.bz2
--2021-07-01 22:39:47-- https://mirrors.bfsu.edu.cn/apache//httpd/httpd-2.4.48.tar.bz2
正在解析主机 mirrors.bfsu.edu.cn (mirrors.bfsu.edu.cn)... 39.155.141.16, 2001:da8:20f:4435:4adf:37ff:fe55:2840
正在连接 mirrors.bfsu.edu.cn (mirrors.bfsu.edu.cn)|39.155.141.16|:443... 已连接。
已发出 HTTP 请求,正在等待回应... 200 OK
长度:7194385 (6.9M) [application/octet-stream]
正在保存至: “httpd-2.4.48.tar.bz2”

100%[=========================================================>] 7,194,385   4.45MB/s 用时 1.5s  

2021-07-01 22:39:49 (4.45 MB/s) - 已保存 “httpd-2.4.48.tar.bz2” [7194385/7194385])
[root@localhost bianyi]tar xvf httpd-2.4.48.tar.bz2
[root@localhost bianyi]# ls
httpd-2.4.48 httpd-2.4.48.tar.bz2
[root@localhost bianyi]# cd httpd-2.4.48/
[root@localhost httpd-2.4.48]# ./configure \
--prefix=/usr/local/apache \


./configure --prefix=/usr/local/apache

中间省略
configure: Configuring Apache Portable Runtime library...
configure:
checking for APR... no
configure: error: APR not found. Please read the documentation.
无apr包安装即可
[root@localhost httpd-2.4.48]# yum install apr* -y
中间省略
作为依赖被升级:
cyrus-sasl.x86_64 0:2.1.26-23.el7               cyrus-sasl-gssapi.x86_64 0:2.1.26-23.el7        
cyrus-sasl-lib.x86_64 0:2.1.26-23.el7           cyrus-sasl-md5.x86_64 0:2.1.26-23.el7          
cyrus-sasl-plain.x86_64 0:2.1.26-23.el7         cyrus-sasl-scram.x86_64 0:2.1.26-23.el7        
expat.x86_64 0:2.1.0-12.el7                     libdb.x86_64 0:5.3.21-25.el7                    
libdb-utils.x86_64 0:5.3.21-25.el7             openldap.x86_64 0:2.4.44-23.el7_9              

完毕!
[root@localhost httpd-2.4.48]# ./configure \
> --prefix=/usr/local/apache \

checking for APR-util... yes
checking for gcc... gcc
checking whether the C compiler works... no
configure: error: in `/bianyi/httpd-2.4.48':
configure: error: C compiler cannot create executables
See `config.log' for more details
提示gcc 没有安装,安装即可
[root@localhost httpd-2.4.48]# yum install gcc* -y
中间省略
作为依赖被升级:
glibc.x86_64 0:2.17-324.el7_9 glibc-common.x86_64 0:2.17-324.el7_9 libgcc.x86_64 0:4.8.5-44.el7
libgomp.x86_64 0:4.8.5-44.el7 libstdc++.x86_64 0:4.8.5-44.el7
[root@localhost httpd-2.4.48]# ./configure \
> --prefix=/usr/local/apache \

checking for gcc option to accept ISO C99... -std=gnu99
checking for pcre-config... false
configure: error: pcre-config for libpcre not found. PCRE is required and available from http://pcre.org/
pcre没装安装即可
[root@localhost httpd-2.4.48]# yum install pcre* -y
中间省略
已安装:
pcre-devel.x86_64 0:8.32-17.el7                 pcre-static.x86_64 0:8.32-17.el7              
pcre-tools.x86_64 0:8.32-17.el7                 pcre2-devel.x86_64 0:10.23-2.el7              
pcre2-static.x86_64 0:10.23-2.el7               pcre2-tools.x86_64 0:10.23-2.el7              
pcre2-utf16.x86_64 0:10.23-2.el7                 pcre2-utf32.x86_64 0:10.23-2.el7              

完毕!
[root@localhost httpd-2.4.48]# ./configure \
> --prefix=/usr/local/apache \

中间省略
Server Version: 2.4.48
  Install prefix: /usr/local/apache
  C compiler:     gcc -std=gnu99
  CFLAGS:           -pthread  
  CPPFLAGS:       -DLINUX -D_REENTRANT -D_GNU_SOURCE  
  LDFLAGS:          
  LIBS:            
  C preprocessor: gcc -E
[root@localhost httpd-2.4.48]# make
等待编译完成
/modules/lua -I/bianyi/httpd-2.4.48/modules/proxy -I/bianyi/httpd-2.4.48/modules/http2 -I/bianyi/httpd-2.4.48/modules/session -I/bianyi/httpd-2.4.48/modules/ssl -I/bianyi/httpd-2.4.48/modules/test -I/bianyi/httpd-2.4.48/server -I/bianyi/httpd-2.4.48/modules/md -I/bianyi/httpd-2.4.48/modules/arch/unix -I/bianyi/httpd-2.4.48/modules/dav/main -I/bianyi/httpd-2.4.48/modules/generators -I/bianyi/httpd-2.4.48/modules/mappers -prefer-pic -c mod_rewrite.c && touch mod_rewrite.slo
/usr/lib64/apr-1/build/libtool --silent --mode=link gcc -std=gnu99 -pthread           -o mod_rewrite.la -rpath /usr/local/apache/modules -module -avoid-version mod_rewrite.lo
make[4]: 离开目录“/bianyi/httpd-2.4.48/modules/mappers”
make[3]: 离开目录“/bianyi/httpd-2.4.48/modules/mappers”
make[2]: 离开目录“/bianyi/httpd-2.4.48/modules”
make[2]: 进入目录“/bianyi/httpd-2.4.48/support”
make[2]: 离开目录“/bianyi/httpd-2.4.48/support”

make[1]: 离开目录“/bianyi/httpd-2.4.48”
[root@localhost httpd-2.4.48]# make install
等待编译完成
Installing man pages and online manual
mkdir /usr/local/apache/man
mkdir /usr/local/apache/man/man1
mkdir /usr/local/apache/man/man8
mkdir /usr/local/apache/manual
make[1]: 离开目录“/bianyi/httpd-2.4.48”
[root@localhost bin]# /usr/local/apache/bin/apachectl
#启动服务
AH00558: httpd: Could not reliably determine the server's fully qualified domain name, using localhost.localdomain. Set the 'ServerName' directive globally to suppress this message
[root@localhost bin]# netstat -ntap |grep 80
tcp6       0     0 :::80                   :::*                   LISTEN     56463/httpd
[root@localhost bin]# systemctl stop firewalld.service
[root@localhost bin]# setenforce 0
[root@localhost bin]# netstat -ntap |grep 80
tcp6       0     0 :::80                   :::*                   LISTEN     56463/httpd

使用真机浏览器打开测试

7.编译安装小脚本

[root@test1 /]# vim httpdinstall.sh
mkdir /bianyi
cd /bianyi/
wget https://mirrors.bfsu.edu.cn/apache//httpd/httpd-2.4.48.tar.bz2
tar xvf httpd-2.4.48.tar.bz2
cd httpd-2.4.48/
yum install apr* gcc* pcre* -y
./configure --prefix=/usr/local/apache --enable-so --enable-rewrite --enable-mods-shared=most --with-mpm=worker --disable-cgid --disable-cgi
make
make install
systemctl stop firewalld.service
/usr/local/apache/bin/apachectl start
[root@test1 /]#chmod 755 httpdinstall.sh
[root@test1 /]#./ httpdinstall.sh
yum install samba -y --downloadonly --downloaddir=/opt/samba/     下载全部依赖包

8 yum 安装

YUM(Yellow dog Updater,Modified)

yum是一个基于RPM包(是Red-Hat Package Manager红帽软件包管理器的缩写)构建的软件更新机制,能够自动解决软件包之间的依赖关系。解决了日常工作中的大量查找安装依赖包的时间

 

标签:httpd,48,管理程序,安装,rpm,root,localhost,2.4
From: https://www.cnblogs.com/sl08/p/17575138.html

相关文章

  • 如何配置Apache24+PHP8+Mysql8包括安装
    一、PHP版本的选择与安装配置PHP官方PHP下载页面选择自己想要的版本点击Zip链接即可下载,x64是操做系统的位数,ThreadSafe是线程安全版本(多线程版Apache服务器使用),NoneThreadSafe是非线程安全版(单线程版IIS服务器使用)然后解压出来后把Apache24根目录的php.ini-developm......
  • Node.js下载安装教程
    一、下载安装包1、百度网盘自提链接:链接:https://pan.baidu.com/s/1Bbw895MtUgjlfZylPHCCxw 提取码:x89v 2、进入官网下载https://nodejs.org/zh-cn/download/选择对应版本,我这里选的windows64位版本 二、安装程序1、双击下载好的安装包,出现这个界面点【next】2、选......
  • 1.2.1 pytorch安装
    1.安装地址:PyTorch选择适合自己的版本,复制命令,粘贴在Anacondapromote中 安装成功 ......
  • rpm 与 程序安装
    rpm1)rpm查询命令-q查询已经安装的软件包 2)mount挂载挂载mount设备文件路径(已存在且空,原来的数据会被隐藏)规则:1.一个挂载点同一时间只能挂载一个设备2.一个挂载点同一时间挂载多个设备,只能看见最后一个挂载设备的数据其他设备上的数据将被隐藏3.一个设......
  • Keil5安装、激活
    一、Keil5安装、激活下载地址:链接:https://pan.baidu.com/s/1O6bcrHe4TfTtV__xlnAiUQ提取码:9999文件包含:ARM.CMSIS-Driver.2.3.0.packARM.CMSIS-RTOS_Validation.1.1.0.packARM.CMSIS.5.4.0.packKeil.ARM_Compiler.1.6.0.packKeil.MDK-Middleware.7.7.0.packKeil.STM......
  • zookeeper(二):安装部署
    一、目标安装部署一套3节点的ZooKeeper集群,并运行起来。规划如下:节点ip主机名软件192.168.1.201zk-node1zookeeper192.168.1.202zk-node2zookeeper192.168.1.203zk-node3zookeeper二、搭建虚拟机1、安装虚拟机软件这里选择的是VirtualBox:Downloads......
  • OpenResty 入门实战(1)--简介及安装
    本文介绍的 OpenResty为开源版本OpenResty,官网地址为:https://openresty.org/cn/,如需了解商业版本,可访问商业官网:https://openresty.com.cn/cn/;文中所使用到的软件版本:OpenResty 1.21.4.2、pcre8.43、opnessl1.1.1s、zlib1.2.11、CentOS 7.9.2009。1、简介OpenResty®是......
  • infraworks卸载不干净无法安装?一招教你如何搞定infraworks安装失败报错的问题【转载】
    infraworks专用卸载工具,完全彻底卸载删除干净infraworks各种残留注册表和文件的方法和步骤。如何卸载infraworks呢?有很多同学想把infraworks卸载后重新安装,但是发现infraworks安装到一半就失败了或者显示infraworks已安装或者安装未完成,大多数情况下其实是infraworks没有被卸载干......
  • macos 安装java1.8
    如何在macOS上安装Java1.8作为一名经验丰富的开发者,我很乐意教会你如何在macOS上安装Java1.8。下面是整个过程的步骤,并附带了每一步需要执行的代码和注释。步骤概览步骤描述步骤1确认系统上是否已经安装了Java步骤2下载并安装JavaDevelopmentKit(J......
  • mac 用pyenv命令安装python出问题
    pyenv命令安装Python遇到的问题及解决方法引言pyenv是一款用于管理多个Python版本的工具。它可以帮助我们在同一台机器上安装和切换不同的Python版本,从而方便地进行开发和测试。然而,在使用pyenv命令安装Python时,有时候会遇到一些问题。本文将介绍一些常见的问题,并提供相应的解决......