CentOS 7安装软件的三种方式(RPM、YUM、源码包)_centos 安装软件 .sh文件怎么运行-程序员宅基地

技术标签: Linux  运维  linux  


软件包分类

源码包

源码包是什么

源码包一般指C语言开发的源代码文件的一个压缩包(.tar.gz或.tar.bz2)。源码包的编译使用Linux系统里的编译器gcc,利用该编译器可以把源码包变成可执行的二进制文件。

  • 创建一个源码包

    [root@letty-02 Desktop]# vim hello.c
    # include <stdio.h>
    int main (void)
    {
          
            printf("Hello,world!\n");
    }
    
  • 安装gcc编译器

    [root@letty-02 /]# mount /dev/cdrom /mnt    --挂载光驱到/mnt目录下
    mount: /dev/sr0 is write-protected, mounting read-only
    
    [root@letty-02 /]# cd /mnt    
    [root@letty-02 mnt]# ls    --进入/mnt可发现已成功挂载
    CentOS_BuildTag  EULA  images    LiveOS    repodata              RPM-GPG-KEY-CentOS-Testing-7
    EFI              GPL   isolinux  Packages  RPM-GPG-KEY-CentOS-7  TRANS.TBL
    
    [root@letty-02 Desktop]# rpm -ivh /mnt/Packages/gcc-4.8.5-4.el7.x86_64.rpm   --rpm安装gcc
    warning: /mnt/Packages/gcc-4.8.5-4.el7.x86_64.rpm: Header V3 RSA/SHA256 Signature, key ID f4a80eb5: NOKEY
    Preparing...                          ################################# [100%]
    Updating / installing...
       1:gcc-4.8.5-4.el7                  ################################# [100%]
    
  • 编译执行源码包

    [root@letty-02 Desktop]# gcc -c hello.c     --  -c生成.o头文件,但不会生成执行文件
    [root@letty-02 Desktop]# ll
    total 8
    -rw-r--r--. 1 root root   67 Apr 29 19:00 hello.c
    -rw-r--r--. 1 root root 1496 Apr 29 19:19 hello.o
    [root@letty-02 Desktop]# gcc -o hello hello.o    --  -o生成执行文件,并制定执行文件名,生成的hello就是可执行文件
    [root@letty-02 Desktop]# ll
    total 20
    -rwxr-xr-x. 1 root root 8503 Apr 29 19:19 hello
    -rw-r--r--. 1 root root   67 Apr 29 19:00 hello.c
    -rw-r--r--. 1 root root 1496 Apr 29 19:19 hello.o
    [root@letty-02 Desktop]# ./hello     -- 执行hello文件
    Hello,world!
    

源码包特点

源码包的优点:

  • 开源,有能力可以自己修改源代码;
  • 可以自由选择所需功能;
  • 软件是编译安装,更加稳定,效率更高;
  • 卸载方便,直接删除目录即可。

源码包的缺点:

  • 安装过程步骤过多,尤其在安装较大软件集合时(如LAMP环境搭建),容易出现拼写错误;
  • 编译过程时间较长,安装比二进制安装时间长;
  • 由于是编译安装,安装过程中一旦报错新手解决较为麻烦。

二进制包

二进制包分类

  • RPM包:由Red Hat公司开发的包管理系统,软件的安装、升级、卸载都非常简单和方便。目前很多Linux发行版都在使用这种包管理机制,包括CentOS、Redhat、Fedora等。软件包文件后缀是".rpm"。
  • DPKG包:由Debian Linux开发出来的包管理机制,主要应用在Debian和Unbuntu系统中。软件包文件后缀是".deb"。

不论是RPM包管理器还是DPKG包管理器,都存在软件包依赖问题,比如软件包A依赖软件包B,软件包B又依赖软件包C,即依赖关系是 “A -> B -> C”,那么就必须先安装C,在安装B,最后A才能安装成功。
为了解决这种依赖问题,Linux开发商都提供了在线安装机制,通过这种机制可以自动解决依赖关系,安装A时会自动安装B和C。

  • 基于RPM包管理机制开发出了YUM在线安装机制;
  • 基于DPKG包管理机制开发出了APT在线安装机制。

二进制包特点

RPM包的优点:

  • 包管理系统简单,只通过几个命令就可以实现包的安装、升级、查询和卸载;
  • 安装速度比源码包安装快很多。

RPM包的缺点:

  • 经过编译,不再可以看到源码;
  • 功能选择不如源码包灵活;
  • 依赖性。

RPM安装

rpm包命名规则

在这里插入图片描述

  • 包全名:如果操作的是未安装软件包,则使用包全名,注意绝对路径。
  • 包名:如果操作的是已经安装的软件包,则使用包名即可,系统会产生RPM包的数据库(/var/lib/rpm/),且可以在任意路径下操作。

rpm包默认安装路径

在这里插入图片描述

rpm包安装

rpm包安装

安装命令:rpm -ivh 包全名

  • 选项:
    -i:安装(install)
    -v:显示更详细的信息(verbose)
    -h:打印#显示安装进度(hash)
    –nodeps:不检测依赖性安装。软件安装时会检查依赖性,如果所依赖的软件还未安装则会报错。加上该选项不检测依赖强制安装,但是这样的软件安装后一般不能使用,建议不要这么做。
    –replacefiles:替换文件安装。若安装软件包时包中部分文件已经存在,正常安装时会报错某文件已经存在导致软件无法安装,使用该选项可以忽视报错覆盖安装。
    –replacepkgs:替换软件包安装。若软件包已经安装,此选项将软件包重复安装一遍。
    –force:强制安装(–replacefiles和–replacepkgs的组合)
    –test:测试安装(检查依赖性,不会实际安装)
    –prefix:指定安装路径,不使用默认安装路径(指定安装路径会使得系统找不到这些安装的软件,需要手工配置被系统识别)

rpm包升级

升级命令:rpm -Uvh 包全名

  • 选项:
    -U:升级安装(如果没有安装过,系统直接安装;如果安装的版本较老,则升级到新版本)

升级命令:rpm -Fvh 包全名

  • 选项:
    -F:升级安装(如果没有安装过,则不会安装;必须有旧版本的软件安装,才能升级)

rpm包卸载

卸载命令:rpm -e 包名

  • 选项:
    -e:卸载软件包
    –nodeps:卸载时不检查依赖性(如果卸载的软件被其它软件依赖导致卸载失败,加上此选项可以强制卸载,但是可能会导致其它软件无法使用,谨慎)

rpm包查询

  • 查询软件包是否安装

    rpm -q 包名

  • 查询系统中所有的安装的软件包

    rpm -qa

    可以使用管道符查看所需内容 如rpm -qa | grep gcc,使用 “rpm -q 包名” 只能查看这个包是否安装,而 “rpm -qa | grep 包名” 可以将包含包名称的所有包都列出来。

    [root@letty-02 Packages]# rpm -q gcc
    gcc-4.8.5-4.el7.x86_64
    
    [root@letty-02 Packages]# rpm -qa | grep gcc
    gcc-4.8.5-4.el7.x86_64
    libgcc-4.8.5-4.el7.x86_64
    
  • 查询软件包的详细信息

    rpm -qi 包名 :查询已安装的软件包详细信息
    选项:
    -i:查询软件信息(information)

    rpm -qip 包全名 :查询未安装的软件包详细信息
    选项:
    -p:查询没有安装的软件包(package)

  • 查询软件包中的文件列表

    rpm -ql 包名:查询已经安装的软件包的文件列表和安装的完整目录
    选项:
    -l:列出软件包中的所有文件了列表和软件所安装的目录(list)

    rpm -qlp 包全名:查询未安装的软件包中的文件列表和打算安装的位置
    选项:
    -p:查询没有安装的软件包(package)

  • 查询系统文件属于哪个软件包

    rpm -qf 系统文件名
    选项:
    -f:查询系统文件属于哪个软件包(file)

  • 查询软件包所依赖的软件包

    rpm -qR 包名:查询系统中和已经安装的软件包有依赖关系的软件包
    选项:
    -R:查询软件包的依赖性(requires)

    rpm -qRp 包全名:查询未安装的软件包的依赖性

rpm验证

命令
  • rpm -Va:校验本机已经安装的所有软件包
  • rpm -V 已安装的包名:校验指定的已安装的软件包
  • rpm -Vf 系统文件名:校验某个系统文件是否被修改
    选项:
    -V:校验指定RPM包中的文件(verify)

如果执行命令后无任何提示,表明没有做任何修改;如果执行命令后有内容输出,则软件包的文件被修改过。

举例
[root@letty-02 Packages]# rpm -Va
....L....  c /etc/pam.d/fingerprint-auth
....L....  c /etc/pam.d/password-auth
....L....  c /etc/pam.d/postlogin
....L....  c /etc/pam.d/smartcard-auth
....L....  c /etc/pam.d/system-auth
.M.......  c /etc/cups/subscriptions.conf
S.5....T.  c /etc/plymouth/plymouthd.conf
S.5....T.  c /etc/profile
S.5....T.  c /etc/issue
S.5....T.  c /etc/issue.net
S.5....T.  c /var/lib/unbound/root.key
S.5....T.  c /etc/sysconfig/authconfig
验证内容    文件类型    文件路径

验证内容共有8个信息内容:

  • S:文件大小是否改变
  • M:文件类型或文件权限(rwx)是否改变
  • 5:文件MD5校验是否改变(文件内容是否改变)
  • D:设备主从代码是否改变
  • L:文件路径是否改变
  • U:文件所有者是否改变
  • G:文件所有组是否改变
  • T:文件修改时间是否改变

文件类型:

  • c:配置文件(config file)
  • d:普通文件(documentation)
  • g:鬼文件(ghost file)
  • l:授权文件(license file)
  • r:描述文件(read me)

数字证书

数字证书验证

rpm -V的校验方式只能对已经安装的RPM包中的文件进行校验。要在安装之前就对RPM进行校验需要使用数据证书验证:

  • 首先找到原厂的公钥文件,然后进行安装;
  • 安装RPM包时,去提取RPM包中的证书信息,然后和本机安装的原厂证书进行验证;
  • 如果验证通过,则允许安装;如果验证不通过,则不允许安装并警告。
数字证书位置

数字证书可以在光盘中找到:

[root@letty-02 ~]# ll /mnt/RPM-GPG-KEY-CentOS-
RPM-GPG-KEY-CentOS-7          RPM-GPG-KEY-CentOS-Testing-7 

默认也放在系统中:

[root@letty-02 ~]# ll /etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-
RPM-GPG-KEY-CentOS-7          RPM-GPG-KEY-CentOS-Debug-7    RPM-GPG-KEY-CentOS-Testing-7
数字证书导入
[root@letty-02 ~]# rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7 
选项:
    --import:导入数字证书

[root@letty-02 ~]# rpm -qa | grep gpg-pubkey    --查询系统中安装好的数字证书
gpg-pubkey-f4a80eb5-53a7ff4b

YUM安装(rpm包在线安装)

yum是什么

yum软件仓库是为了进一步简化RPM管理软件的难度以及自动分析所需软件包及其依赖关系的技术。yum的关键之处是要有可靠的respository,它能够从指定服务器自动下载rpm包并安装。yum能够自动解决软件依赖性问题,一次性安装所有依赖的软件包。

yum源配置文件

yum源配置文件保存在/etc/yum.repos.d/目录中,文件的扩展名一定是".repo",及yum源配置文件只要扩展名是".repo"就会生效。

[root@letty-02 yum.repos.d]# ls
CentOS-Base.repo  CentOS-Debuginfo.repo  CentOS-Media.repo    CentOS-Vault.repo
CentOS-CR.repo    CentOS-fasttrack.repo  CentOS-Sources.repo

/etc/yum.repos.d/目录下的文件如上所示,默认情况下CentOS-Base.repo文件生效。

[root@letty-02 yum.repos.d]# vim CentOS-Base.repo    --展示该文件中的base容器
[base]  
name=CentOS-$releasever - Base   
#mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=os&infra=$infra 
baseurl=http://mirror.centos.org/centos/$releasever/os/$basearch/    
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
  • [base]:容器名称,一定要放在[]中
  • name:容器说明,随便写
  • mirrorlist:镜像站点,可以注释掉
  • baseurl:yum源服务器的地址(默认是CentOS官方的yum源服务器,可以更改)
  • enabled:此容器是否生效(enabled=1生效,enabled=0不生效)
  • gpgcheck:rpm数字证书是否生效(gpgcheck=1生效,gpgcheck=0不生效)
  • gpgkey:数字证书的公钥文件保存位置

搭建本地光盘yum源

  1. 将CentOS光盘挂载到指定位置
    [root@letty-02 /]# mkdir /mnt/cdrom     --创建挂载点
    [root@letty-02 /]# mount /dev/cdrom /mnt/cdrom/    --挂载光盘到/mnt/cdrom目录下
    mount: /dev/sr0 is write-protected, mounting read-only
    
  2. 为了使centos7.repo文件真正生效,需要使得其他yum源文件失效。可以将/etc/yum.repos.d/目录下的yum源配置文件转移到别处
    [root@letty-02 yum.repos.d]# mkdir sys
    [root@letty-02 yum.repos.d]# mv *.repo sys
    [root@letty-02 yum.repos.d]# ls
    sys
    
  3. 创建本地yum源配置文件
    [root@letty-02 yum.repos.d]# vim centos7.repo    
    [centos7]
    name=centos7
    baseurl=file:///mnt/cdrom    --地址设置为光盘挂载地址
    gpgcheck=1
    enabled=1
    gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
    
  4. 测试
    [root@letty-02 yum.repos.d]# yum list available 
    Loaded plugins: fastestmirror, langpacks
    centos7                                                                          | 3.6 kB  00:00:00     
    (1/2): centos7/group_gz                                                          | 155 kB  00:00:00     
    (2/2): centos7/primary_db                                                        | 2.8 MB  00:00:00     
    Loading mirror speeds from cached hostfile
    Available Packages
    389-ds-base.x86_64                                   1.3.4.0-19.el7                              centos7
    389-ds-base-libs.x86_64                              1.3.4.0-19.el7                              centos7
    ElectricFence.x86_64                                 2.2.2-39.el7                                centos7
    GeoIP.x86_64                                         1.5.0-9.el7                                 centos7
    ......
    

yum源配置文件优化

通过网易yum源进行优化:http://mirrors.163.com/.help/centos.html

点击CentOS 7直接下载repo文件,之后移动到Linux系统中。
在这里插入图片描述
右键点击CentOS 7并选择复制链接地址,在Linux系统中通过wget命令进行下载
在这里插入图片描述

[root@localhost Desktop]# wget http://mirrors.163.com/.help/CentOS7-Base-163.repo
--2021-04-30 16:10:58--  http://mirrors.163.com/.help/CentOS7-Base-163.repo
Resolving mirrors.163.com (mirrors.163.com)... 111.2.178.103, 111.2.178.101, 111.2.178.102
Connecting to mirrors.163.com (mirrors.163.com)|111.2.178.103|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 1572 (1.5K) [application/octet-stream]
Saving to: ‘CentOS7-Base-163.repo’

100%[===================================================>] 1,572       --.-K/s   in 0s      

2021-04-30 16:10:58 (261 MB/s) - ‘CentOS7-Base-163.repo’ saved [1572/1572]

[root@localhost Desktop]# mv CentOS7-Base-163.repo /etc/yum.repos.d/
[root@localhost Desktop]# cd /etc/yum.repos.d/
[root@localhost yum.repos.d]# ls
CentOS7-Base-163.repo  centos7.repo  sys
[root@localhost yum.repos.d]# mv centos7.repo sys
[root@localhost yum.repos.d]# ls
CentOS7-Base-163.repo  sys
[root@localhost yum.repos.d]# yum repolist    --检查可用的yum源信息
Loaded plugins: fastestmirror, langpacks
Repodata is over 2 weeks old. Install yum-cron? Or run: yum makecache fast
Loading mirror speeds from cached hostfile
repo id                               repo name                                        status
!base/7/x86_64                        CentOS-7 - Base - 163.com                        10,072
!extras/7/x86_64                      CentOS-7 - Extras - 163.com                         463
!updates/7/x86_64                     CentOS-7 - Updates - 163.com                      1,901
repolist: 12,436

yum命令

yum 命令格式:yum [选项] COMMAND [软件包]

  • 选项:
    -y:自动回答"yes",不再询问。如果不加该选项,安装过程中每个涉及的包安装都要手工回答 “yes” or “no”
    -q:静默模式。不显示安装过程
    -C:完全从缓存中运行,而不去下载或者更新任何头文件
  • COMMAND (要进行的操作)
    install:执行安装操作
    update:执行升级操作
    remove:执行卸载操作
    list:显示可用软件包列表
    search:根据关键字匹配软件包
    info:显示软件包信息

软件包:如果为包名,则默认为软件包的最新版本;如果要指定软件包版本,则需要使用包全名

安装命令

  • 安装指定软件包:yum -y install 包名

升级命令

  • 升级指定软件包:yum -y update 包名
  • 升级本机所有软件包:yum -y update(服务器稳定优先,因此全系统升级的情况并不多见)

注意:在进行升级操作的时候,yum源服务器中软件包的版本要比本机安装的软件包的版本高。

卸载命令

  • 卸载指定软件包:yum remove 包名

注意:除非确定要卸载的软件依赖包不会对系统产生影响,否则不要执行yum卸载。

查询命令

  • yum list:查询yum源服务器上所有可安装的软件包列表

    [root@letty-02 ~]# yum list | more 
    Loaded plugins: fastestmirror, langpacks
    Loading mirror speeds from cached hostfile
    Installed Packages    --已经安装的软件包
    ......
    Available Packages    --还可以安装的软件包
    ......
    
  • yum list 包名:查询yum源服务器中是否包含某个软件包

    [root@letty-02 ~]# yum list httpd
    Loaded plugins: fastestmirror, langpacks
    Loading mirror speeds from cached hostfile
    Available Packages
    httpd.x86_64                                 2.4.6-40.el7.centos                                 centos7
    
  • yum search 关键字:查询yum源服务器上所有和关键字相关的软件包(可用于确定某个软件在哪个相关包中)

    [root@letty-02 ~]# yum search ifconfig
    Loaded plugins: fastestmirror, langpacks
    Loading mirror speeds from cached hostfile
    ========================================== Matched: ifconfig ===========================================
    net-tools.x86_64 : Basic networking tools
    
  • yum info 包名:查询指定软件包的信息

    [root@letty-02 ~]# yum info httpd
    Loaded plugins: fastestmirror, langpacks
    Loading mirror speeds from cached hostfile
    Available Packages    --未安装
    Name        : httpd    --包名
    Arch        : x86_64    --适合的硬件平台
    Version     : 2.4.6    --版本
    Release     : 40.el7.centos    --发布版本
    Size        : 2.7 M    --大小
    Repo        : centos7    --光盘
    ......
    

yum缓存

默认情况下,通过yum成功安装软件后,会把下载的软件包删除。如果要保留下载的软件包,可以编辑/etc/yum.conf,把里面的参数keepcache改为1(默认keepcache=0)。这样每次通过yum安装软件时,会把下载的软件包缓存在/var/cache/yum/目录下,下次安装相同软件时,就可以从缓存中直接获取软件包,在没有网络的情况下也可以正常安装。

  • 清除缓存:yum clean packages|headers|oldheaders|all
    packages:清除缓存目录下的软件包
    headers:清除缓存目录下的headers
    oldheaders:清除缓存目录下旧的headers
    all:清除全部
  • 重新建立缓存:yum makecache
  • 只从缓存中查找软件包并安装:yum -C install 包名

yum组管理命令

软件组指的是一组相关的软件包(并不是指依赖关系),通过yum命令可以对组内软件包批量管理。

  • yum grouplist:列出所有可用的软件组列表
  • yum groupinfo 软件组名:列出软件组包含的软件
  • yum groupinstall 软件组名:安装软件组
  • yum groupremove 软件组名:卸载软件组

源码包安装

注意事项

  • 什么时候使用源码包安装?
    如果软件包是给大量客户提供访问,建议使用源码包安装,因为源码包效率更高。如果软件包是给Linux底层使用,或只给少量客户访问,建议使用rpm包安装,因为rpm包简单,不易出错。
  • 获取源码包:官网下载
  • 同一个软件是否可以使用软件包方式安装和源码包安装同时安装?
    可以,因为两种方式的软件安装位置不同,所以安装时互相不会产生影响。但是两个软件同时启动需要更改端口,否则会端口冲突。一般情况下不会同一个软件安装两次。

安装过程

  1. 下载源码包
  2. 解压缩源码包
  3. 进入解压目录
  4. ./configure 编译前准备
    – 在安装之前检测系统环境是否符合安装要求。
    – 定义需要的功能选项,如通过"./configure --prefix=安装路径"来指定安装路径。可以执行"./configure --help"命令查询其支持的功能。
    – 创建Makefile文件并把系统环境的检测结果和定义好的功能选项写入,后续的编译和安装需要依赖这个文件的内容。
  5. make 编译
    make会调用gcc编译器,并读取Makefile文件中的信息进行系统软件编译。编译的目的就是把源码程序转变为能被Linux识别的可执行文件,这些可执行文件保存在当前目录下。编译过程较为耗时。
  6. make clean 清空编译内容(非必要步骤)
    如果在"./configure" 或 “make"编译中报错,在重新执行命令前一定先执行make clean命令,它会清空Makefile文件或编译产生的”.o头文件。
  7. make install 编译安装
    真正的安装过程,一般会写清楚程序的安装位置。如果忘记指定安装目录,则可以把这个命令的执行过程保存下来,以备将来删除使用。

注意:

  1. 执行 ./configure 命令时可能会提示缺少 gcc 等依赖程序,所以需要使用 yum 等方式先安装依赖程序即可。
  2. 并不是所有的源码包安装一定是执行 “./configure”、“make”、“make install” 这三个命令,只有极少数源码包安装命令可能有些不同,比如 mysql 版本 5.5 以后的源码包安装时,使用 “cmake” 命令替代了 “./configure”。一般源码包解压后都有安装的说明文档,安装之前可以先阅读以下说明文档。
  3. 一般去第三方官网下载源码包时,也会提供已经编译好的二进制包,这种二进制包里面包括了已经经过编译可以马上运行的程序,所以解压后直接进入 “xxx/bin/” 目录找到相关命令直接运行即可。

卸载

通过源码包安装时如果指定了安装目录,如 “./configure --prefix=安装路径”,卸载时只需要删除整个安装目录就可以了 “rm -rf 安装路径”,而且是100%卸载,不会像windows那样经常会残留那多注册表之类的垃圾。

如果源码包安装时没有指定安装目录,那么安装软件生成的文件会分别存储在 /usr/local/ 下的 bin、lib、etc 等目录下,删除起来就比较麻烦一点了。所以建议源码包安装一定要指定安装目录,方便卸载。如果忘记指定安装目录,则可以把make install这个命令的执行过程保存下来,以备将来删除使用。

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/hawava/article/details/116275103

智能推荐

Vue——el-table中打开dialog修改数据_el-table内打开el-dialog-程序员宅基地

文章浏览阅读6.2k次,点赞12次,收藏26次。1、表格显示数据<el-table :data="tableData" style="width: 100%"> <el-table-column prop="battery_min" label="最小值" width="180"/> <el-table-colum..._el-table内打开el-dialog

联想拯救者Y9000P安装ubuntu22.04和安装anaconda教程_联系拯救者ubuntu22.04安装-程序员宅基地

文章浏览阅读2.5k次。ubuntu22.04 双系统 anaconda 磁盘空间分配_联系拯救者ubuntu22.04安装

【条形码识别】基于形态学实现条形码识别附matlab代码_条形码识别代码-程序员宅基地

文章浏览阅读1.2k次,点赞2次,收藏6次。1 简介在信息时代的今天,随着计算机技术的发展,条形码作为一种简单、方便、廉价、高速的信息保存和传输技术,在世界各地应用广泛,是商品进入国际市场的通行证。 本论文的研究基于一种全新的购物理念,即无需排队等待收银员,只需要将选购的商品放入"自助购物系统",便可自助购物买单。目前超市中广泛使用的条形码扫描器是基于光电识别原理制作的,虽然技术成熟、简单,但需收银员人工定位条形码区域,且对条形码质量要求严格,若条形码部分发生断裂、有污渍等现象,则不能正确识读条形码所携带的信息。更不能识读应用越来越广泛的二维条形_条形码识别代码

自动化测试简介(2023)_test automation 是什么-程序员宅基地

文章浏览阅读2.7k次,点赞2次,收藏13次。答案是否定的,因为不管什么样的产品,最终呈现给用户的是UI层的功能,所以产品才需要招聘大量的测试人员进行UI层的功能测试。这些形形色色的测试金字塔,都是传统的自动化测试金字塔模型,都是很棒的视觉隐喻,可以让人思考不同层次的测试,还会告诉我们在每个测试层要做多少测试。让机器做最擅长的重复性工作,让测试人员做一些有挑战的有意义的探索性测试。分析测试金字塔,讲的都是理论上的内容,实际的自动化测试实践,大多数情况都变成了倒着的测试金字塔,UI层成了我们投入最多的地方,依次是service层和unit层。_test automation 是什么

建筑设备自动化——I/O接口数字量与模拟量_数字输入输出接口设计-程序员宅基地

文章浏览阅读2.7k次。I/O接口I/O接口是主机(CPU)与被控对象进行信息交换的纽带。主机通过I/O接口与外部设备进行数据交换。目前,绝大部分I/O接口电路都是可编程的,即它们的工作方式可由程序进行控制。此外,由于计算机只能接收数字量,而一般的连续化生产过程被测参数大都为模拟量,如温度、压力、流量、液位、电压以及电流等。因此,为了实现计算机控制,还必须把模拟量转换成数字量,即A/D转换。同样外部执行机构的控制也多为模拟量,所以计算机计算出控制量之后,还必须把数字量变成模拟量,即D/A转换。检测元件及执行机构在计算机控制_数字输入输出接口设计

Linux中MySQL报错:xxx Permission denied , MySQL is not running, but PID file exists_error! mysql is not running, but pid file exists-程序员宅基地

文章浏览阅读1.4k次。笔者当然也看了很多别的博客的解决办法,亲测不符合我这个问题,下图为笔者问题的报错,请大家注意,前面xxxx的pid文件:拒绝访问,笔者意识到可能是权限问题,没错,果然是权限问题笔者无论关闭开启都不行,其实就是应为在安装的时候使用了root权限,所以有些问题需要root才能访问,切换到root权限就好了,一切正常..._error! mysql is not running, but pid file exists

随便推点

Android模拟器访问本地tomcat服务器下的web应用(webservice),localhost换成10.0.2.2_tomcat修改localhost为10.0.2.2-程序员宅基地

文章浏览阅读2.6k次。安装tomcat后,在浏览器中输入http://localhost:9090/(默认端口为8080,可根据自己情况更改)就能出现如下页面:该页面来自/home/apache-tomcat-7.0.40/webapps/ROOT/index.jsp在一般的JavaWeb程序开发中,我们通常使用localhost或者127.0.0.1来访问本机的Web服务,但是如果_tomcat修改localhost为10.0.2.2

Java变量和运算符总结_java变量和标识运算符实训结果-程序员宅基地

文章浏览阅读199次。1.变量变量指的是程序运行时可变的量. 相当于开辟一块内存空间来保存一些数据.类型则是对变量的种类进行了划分, 不同的类型的变量具有不同的特性1.1 整型变量基本语法格式:int 变量名 = 初始值;代码示例:int num = 10; // 定义一个整型变量 System.out.println(num) ; 注意事项:int 表示变量的类型是一个整型变量名是变..._java变量和标识运算符实训结果

secureCRT查看linux日志换行,SecureCRT查看日志乱码-程序员宅基地

文章浏览阅读493次。Do not go gentle into that good night软件环境:SecureCRT v 5.0.3SecureCRT是在工作中使用的很频繁的工具之一,昨天安装好后发现查看日志文件有乱码; 遂查之;后来发现网上有一堆说什么需要修改服务端i18n配置文件,找了一圈发现文件的位置还不尽相同;后来仔细想后觉得不太靠谱,至少针对我遇到的问题不靠谱;原因如下:a.我看的测试环境是运行了很久..._linux查看日志时换行

fatfs读写csv文件_fatfs csv-程序员宅基地

文章浏览阅读5.1k次,点赞2次,收藏16次。参考例程u8text_buffer[512] = "hospital,bednumber,name,age,sex,\n";int tf_add_write_file(char *path){ FIL fsrc; // 文件描述符 UINT br; // File R/W count u8 count..._fatfs csv

[C++][ubuntu]C++如何将char*赋值给另一个char*_char*给char*赋值-程序员宅基地

文章浏览阅读1.9k次。点评:这种方法需要知道原char*长度,而且需要delete防止内存泄漏。点评:这种方法需要知道原char*长度,而且需要delete防止内存泄漏。//注意设置5报错,要算\0。//测试发现设置5也行。方法四:sprintf函数。_char*给char*赋值

随堂测微信小程序+springboot+vue.js附带文章和源代码设计说明文档ppt_微信小程序 vue spring boot-程序员宅基地

文章浏览阅读801次,点赞16次,收藏23次。博主介绍:CSDN特邀作者、985计算机专业毕业、某互联网大厂高级全栈开发程序员、码云/掘金/华为云/阿里云/InfoQ/StackOverflow/github等平台优质作者、专注于Java、小程序、前端、python等技术领域和毕业项目实战,以及程序定制化开发、全栈讲解、就业辅导、面试辅导、简历修改。精彩专栏 推荐订阅2023-2024年最值得选的微信小程序毕业设计选题大全:100个热门选题推荐2023-2024年最值得选的Java毕业设计选题大全:500个热门选题推荐。_微信小程序 vue spring boot