首页 > 其他分享 >如何在华为云欧拉系统 ECS 实例新建私有 REPO 源并制作安全 RPM 包

如何在华为云欧拉系统 ECS 实例新建私有 REPO 源并制作安全 RPM 包

时间:2023-12-28 14:38:34浏览次数:30  
标签:root hce2 软件包 helloworld REPO rpmbuild ECS hce RPM


写在前面


  • 工作中遇到,简单整理
  • 博文内容为 华为云开发者认证 实验笔记
  • 理解不足小伙伴帮忙指正

对每个人而言,真正的职责只有一个:找到自我。然后在心中坚守其一生,全心全意,永不停息。所有其它的路都是不完整的,是人的逃避方式,是对大众理想的懦弱回归,是随波逐流,是对内心的恐惧 ——赫尔曼·黑塞《德米安》


在某些情况下,我们可能需要在华为云欧拉系统ECS实例上新建私有REPO源:

通过创建私有REPO源,您可以在本地维护和管理自己的软件包,而无需依赖公共的软件源。这对于需要在内部网络环境中部署应用程序或提供特定软件包的组织非常有用。私有REPO源还可以提供更好的访问速度和安全性。

同时可以控制软件包的分发方式。您可以选择将软件包限制为特定的用户或组织,并根据需要进行访问控制。这样可以确保只有授权的人员可以访问和使用您的软件包。

通过在华为云欧拉系统ECS实例上新建私有REPO源并制作安全的RPM包,您可以更好地管理和控制软件包的分发过程,并确保软件包的安全性和完整性。

今天和小伙伴们分享如何在华为云欧拉系统ECS 新建私有 REPO 源 并制作安全 RPM 包

安装 rpm-build

rpm-build 是一个用于构建 RPM 软件包的工具集合。RPM(Red Hat Package Manager)是一种在 Linux 发行版中使用的软件包管理系统,如Red Hat Enterprise Linux(RHEL),CentOS和Fedora。它允许您创建、安装、升级和管理系统上的软件包。

rpm-build 软件包提供了从源代码构建RPM软件包所需的工具和实用程序,其中包括规范文件(spec file)。规范文件包含有关软件包的信息以及构建和安装软件包的指令。

以下是rpm-build软件包提供的一些关键组件和实用程序:

rpmbuild:这是主要的命令行工具,用于构建RPM软件包。它接受一个规范文件作为输入,并执行构建软件包的必要步骤,包括编译源代码、创建软件包结构和生成RPM软件包文件。

rpmspec:此实用程序用于验证和解析规范文件。可以使用它在构建软件包之前检查规范文件的语法和正确性。

rpmdevtools:这是一组工具,简化了构建RPM软件包的过程。它提供了诸如

  • rpmdev-setuptree(设置构建软件包的目录结构)
  • rpmdev-newspec(生成规范文件模板)
  • rpmdev-bumpspec(更新规范文件的版本信息)等实用程序。

rpm-build-libs:此软件包包含构建RPM软件包所需的库和头文件。它为具有对 RPM 库的依赖关系的软件包提供必要的开发文件。

[root@ecs-hce ~]# yum -y  install rpm-build >> /dev/null 
retrieving repo key for base unencrypted from http://repo.huaweicloud.com/hce/2.0/os/RPM-GPG-KEY-HCE-2
Importing GPG key 0xA8DEF926:
 Userid     : "HCE <[email protected]>"
 Fingerprint: C1BA 9CD4 9D03 A206 E241 F176 28DA 5B77 A8DE F926
 From       : http://repo.huaweicloud.com/hce/2.0/os/RPM-GPG-KEY-HCE-2
[root@ecs-hce ~]# yum -y  install rpm-devel rpmdevtools  >> /dev/null

生成 rpm 开发目录

rpmdev-setuptreerpmdevtools 软件包中的一个实用程序,用于设置 RPM 软件包构建的目录结构。它创建了一个标准的 RPM 构建环境,包括各种必要的目录和文件。

[root@ecs-hce ~]# rpmdev-setuptree 
[root@ecs-hce ~]# ls
rpmbuild

使用 rpmdev-setuptree 命令可以在当前用户的主目录下创建以下目录:

  • ~/rpmbuild/SOURCES:用于存放源代码文件、补丁文件和其他构建所需的资源文件。
  • ~/rpmbuild/SPECS:用于存放RPM软件包的规范文件(spec file)。
  • ~/rpmbuild/BUILD:用于构建RPM软件包时的临时构建目录。
  • ~/rpmbuild/RPMS:用于存放构建完成的RPM软件包文件。
  • ~/rpmbuild/SRPMS:用于存放构建完成的源码RPM软件包文件。

创建源码路径,创建源码文件并修改权限,源码文件中写入代码

[root@ecs-hce ~]# cd /root/rpmbuild/SOURCES/
[root@ecs-hce SOURCES]# mkdir hce2-helloworld-1.0.0
[root@ecs-hce SOURCES]# touch hce2-helloworld-1.0.0/hce2-helloworld
[root@ecs-hce SOURCES]# chmod 755 hce2-helloworld-1.0.0/hce2-helloworld
[root@ecs-hce SOURCES]# vim hce2-helloworld-1.0.0/hce2-helloworld
[root@ecs-hce SOURCES]# cat hce2-helloworld-1.0.0/hce2-helloworld
!/bin/sh 
echo Hello World!

压缩源码

[root@ecs-hce SOURCES]# tar zcvf hce2-helloworld-1.0.0.tar.gz hce2-helloworld-1.0.0/
hce2-helloworld-1.0.0/
hce2-helloworld-1.0.0/hce2-helloworld

生成规范文件位置

进入/root/rpmbuild/SPECS 路径生成.spec文件,需要输入y 确认

rpmdev-newspec 是 rpmdevtools 软件包中的一个实用程序,用于生成一个新的RPM 软件包规范文件(spec file)的模板。规范文件是描述 RPM 软件包的元数据和构建指令的文本文件。

[root@ecs-hce SOURCES]# cd /root/rpmbuild/SPECS/
[root@ecs-hce SPECS]# yum install -y git >> /dev/nul
[root@ecs-hce SPECS]# rpmdev-newspec hce2-helloworld.spec
hce2-helloworld.spec created; type minimal, rpm version >= 4.17.
[root@ecs-hce SPECS]# ls
hce2-helloworld.spec

使用 rpmdev-newspec 命令可以方便地生成一个空白的规范文件模板,可以在此基础上填充具体的软件包信息和构建指令。

[root@ecs-hce SPECS]# vim hce2-helloworld.spec
[root@ecs-hce SPECS]# cp hce2-helloworld.spec hce2-helloworld.spec.back
[root@ecs-hce SPECS]# !vi
vim hce2-helloworld.spec

编写软件包信息和构建指令


```bash
Name: hce2-helloworld
Version: 1.0.0
Release: 1%{?dist}
Summary: hce2-helloworld

Group: Development/Tools
License: GPL
#URL:
Source0: %{name}-%{version}.tar.gz

#BuildRequires:
#Requires:

%description

%prep
%setup -q

%build

%install
mkdir -p $RPM_BUILD_ROOT/usr/bin
cp $RPM_BUILD_DIR/%{name}-%{version}/hce2-helloworld $RPM_BUILD_ROOT/usr/bin/

%clean
rm -rf $RPM_BUILD_ROOT

%files
%defattr(-,root,root,-)
%doc
/usr/bin/hce2-helloworld

%changelog

执行编译命令,生成 rpm

rpmbuild 是一个用于构建 RPM 软件包的命令行工具。它接受一个 RPM 软件包规范文件(spec file)作为输入,并根据规范文件中定义的指令执行构建过程,生成最终的 RPM 软件包文件。

[root@ecs-hce SPECS]# rpmbuild --nodebuginfo -ba hce2-helloworld.spec
Executing(%prep): /bin/sh -e /var/tmp/rpm-tmp.fTh7oO
+ umask 022
+ cd /root/rpmbuild/BUILD
+ cd /root/rpmbuild/BUILD
+ rm -rf hce2-helloworld-1.0.0
+ /usr/bin/gzip -dc /root/rpmbuild/SOURCES/hce2-helloworld-1.0.0.tar.gz
+ /usr/bin/tar -xof -
+ STATUS=0
+ '[' 0 -ne 0 ']'
+ cd hce2-helloworld-1.0.0
+ /usr/bin/chmod -Rf a+rX,u+w,g-w,o-w .
+ RPM_EC=0
++ jobs -p
+ exit 0
Executing(%build): /bin/sh -e /var/tmp/rpm-tmp.G258Wy
+ umask 022
+ cd /root/rpmbuild/BUILD
+ cd hce2-helloworld-1.0.0
+ RPM_EC=0
++ jobs -p
+ exit 0
Executing(%install): /bin/sh -e /var/tmp/rpm-tmp.dvzv3Y
+ umask 022
+ cd /root/rpmbuild/BUILD
+ '[' /root/rpmbuild/BUILDROOT/hce2-helloworld-1.0.0-1.x86_64 '!=' / ']'
+ rm -rf /root/rpmbuild/BUILDROOT/hce2-helloworld-1.0.0-1.x86_64
++ dirname /root/rpmbuild/BUILDROOT/hce2-helloworld-1.0.0-1.x86_64
+ mkdir -p /root/rpmbuild/BUILDROOT
+ mkdir /root/rpmbuild/BUILDROOT/hce2-helloworld-1.0.0-1.x86_64
+ cd hce2-helloworld-1.0.0
+ mkdir -p /root/rpmbuild/BUILDROOT/hce2-helloworld-1.0.0-1.x86_64/usr/bin
+ cp /root/rpmbuild/BUILD/hce2-helloworld-1.0.0/hce2-helloworld /root/rpmbuild/BUILDROOT/hce2-helloworld-1.0.0-1.x86_64/usr/bin/
+ '[' '%{buildarch}' = noarch ']'
+ QA_CHECK_RPATHS=1
+ case "${QA_CHECK_RPATHS:-}" in
+ /usr/lib/rpm/check-rpaths
+ /usr/lib/rpm/check-buildroot
+ /usr/lib/rpm/brp-ldconfig
+ /usr/lib/rpm/brp-compress
+ /usr/lib/rpm/brp-strip /usr/bin/strip
+ /usr/lib/rpm/brp-strip-comment-note /usr/bin/strip /usr/bin/objdump
+ /usr/lib/rpm/brp-strip-static-archive /usr/bin/strip
+ /usr/lib/rpm/brp-python-bytecompile /usr/bin/python 1 1
+ /usr/lib/rpm/brp-python-hardlink
Processing files: hce2-helloworld-1.0.0-1.x86_64
__brp_dim_baseline not set, ignore dim baseline generating
Provides: hce2-helloworld = 1.0.0-1 hce2-helloworld(x86-64) = 1.0.0-1
Requires(rpmlib): rpmlib(CompressedFileNames) <= 3.0.4-1 rpmlib(FileDigests) <= 4.6.0-1 rpmlib(PayloadFilesHavePrefix) <= 4.0-1
Checking for unpackaged file(s): /usr/lib/rpm/check-files /root/rpmbuild/BUILDROOT/hce2-helloworld-1.0.0-1.x86_64
Wrote: /root/rpmbuild/SRPMS/hce2-helloworld-1.0.0-1.src.rpm
Wrote: /root/rpmbuild/RPMS/x86_64/hce2-helloworld-1.0.0-1.x86_64.rpm
Executing(%clean): /bin/sh -e /var/tmp/rpm-tmp.QbHsJi
+ umask 022
+ cd /root/rpmbuild/BUILD
+ cd hce2-helloworld-1.0.0
+ rm -rf /root/rpmbuild/BUILDROOT/hce2-helloworld-1.0.0-1.x86_64
+ RPM_EC=0
++ jobs -p
+ exit 0
[root@ecs-hce SPECS]#

查看生成路径

[root@ecs-hce SPECS]# ls /root/rpmbuild/RPMS/x86_64/hce2-helloworld-1.0.0-1.x86_64.rpm
/root/rpmbuild/RPMS/x86_64/hce2-helloworld-1.0.0-1.x86_64.rpm

创建私有的 repo 源

选择一个本地私有REPO源的文件目录

选择用/home/private/目录(手动创建一个目录) 将步骤10中的rpm包,拷贝到该目录下

[root@ecs-hce SPECS]# mkdir /home/private
[root@ecs-hce SPECS]# cp /root/rpmbuild/RPMS/x86_64/hce2-helloworld-1.0.0-1.x86_64.rpm /home/private/

安装createrepo工具,使用 createrepo 命令来创建 RPM 软件包仓库。使用方法如下:

[root@ecs-hce SPECS]# yum install -y  createrepo >> /dev/null
[root@ecs-hce SPECS]# cd /home/private
[root@ecs-hce private]# createrepo .
Directory walk started
Directory walk done - 1 packages
Temporary output repo path: ./.repodata/
Preparing sqlite DBs
Pool started (with 5 workers)
Pool finished

编辑 repo 配置文件, repo 配置文件中增加 repo 源

[root@ecs-hce private]# vi /etc/yum.repos.d/hce.repo
[root@ecs-hce private]# cat /etc/yum.repos.d/hce.repo
.......
.......
[hce2-test]
name=hce2-test
baseurl=file:///home/private/
enabled=1
gpgcheck=0

生效repo源

yum makecache 是一个 yum 命令的选项,用于创建或更新 yum 软件包管理器的本地软件包缓存。

当执行 yum makecache 命令时,yum 会检查配置文件中定义的软件包仓库,并下载或更新仓库中的元数据信息。这些元数据包括软件包列表、版本信息、依赖关系等,用于加快后续的软件包搜索和安装过程。

[root@ecs-hce private]# yum makecache
HCE 2.0 base                                                                                                                             70 kB/s | 3.0 kB     00:00    
HCE 2.0 updates                                                                                                                         151 kB/s | 3.5 kB     00:00    
hce2-test                                                                                                                               2.9 MB/s | 3.0 kB     00:00    
Metadata cache created.

安装 hce2-helloworld-1.0.0.rpm

[root@ecs-hce private]# yum install hce2-helloworld
Last metadata expiration check: 0:00:11 ago on Fri 08 Dec 2023 10:21:38 PM CST.
Dependencies resolved.
========================================================================================================================================================================
 Package                                       Architecture                         Version                               Repository                               Size
========================================================================================================================================================================
Installing:
 hce2-helloworld                               x86_64                               1.0.0-1                               hce2-test                               6.4 k

Transaction Summary
========================================================================================================================================================================
Install  1 Package

Total size: 6.4 k
Installed size: 28  
Is this ok [y/N]: y
Downloading Packages:
Running transaction check
Transaction check succeeded.
Running transaction test
Transaction test succeeded.
Running transaction
  Preparing        :                                                                                                                                                1/1 
  Installing       : hce2-helloworld-1.0.0-1.x86_64                                                                                                                 1/1 
  Verifying        : hce2-helloworld-1.0.0-1.x86_64                                                                                                                 1/1 

Installed:
  hce2-helloworld-1.0.0-1.x86_64                                                                                                                                        

Complete!

制作安全补丁 rpm ,拷贝生成新的源码包,升级版本

[root@ecs-hce private]# cd /root/rpmbuild/SOURCES/
[root@ecs-hce SOURCES]# cp -r hce2-helloworld-1.0.0 hce2-helloworld-1.1.0
[root@ecs-hce SOURCES]# tar zcvf hce2-helloworld-1.1.0.tar.gz hce2-helloworld-1.1.0/
hce2-helloworld-1.1.0/
hce2-helloworld-1.1.0/hce2-helloworld
[root@ecs-hce SOURCES]# cd ../SPECS/

修改hce2-helloworld.spec版本号,将Version:1.0.0修改为1.1.0。其他内容保持不变。

[root@ecs-hce SPECS]# vim hce2-helloworld.spec

编译生成新的RPM包,并拷贝到/home/private/目录下

[root@ecs-hce SPECS]# rpmbuild --nodebuginfo -ba hce2-helloworld.spec
Executing(%prep): /bin/sh -e /var/tmp/rpm-tmp.37tfGQ
+ umask 022
+ cd /root/rpmbuild/BUILD
+ cd /root/rpmbuild/BUILD
+ rm -rf hce2-helloworld-1.1.0
+ /usr/bin/gzip -dc /root/rpmbuild/SOURCES/hce2-helloworld-1.1.0.tar.gz
+ /usr/bin/tar -xof -
+ STATUS=0
+ '[' 0 -ne 0 ']'
+ cd hce2-helloworld-1.1.0
+ /usr/bin/chmod -Rf a+rX,u+w,g-w,o-w .
+ RPM_EC=0
++ jobs -p
+ exit 0
Executing(%build): /bin/sh -e /var/tmp/rpm-tmp.hmcjbb
+ umask 022
+ cd /root/rpmbuild/BUILD
+ cd hce2-helloworld-1.1.0
+ RPM_EC=0
++ jobs -p
+ exit 0
Executing(%install): /bin/sh -e /var/tmp/rpm-tmp.CvqayW
+ umask 022
+ cd /root/rpmbuild/BUILD
+ '[' /root/rpmbuild/BUILDROOT/hce2-helloworld-1.1.0-1.x86_64 '!=' / ']'
+ rm -rf /root/rpmbuild/BUILDROOT/hce2-helloworld-1.1.0-1.x86_64
++ dirname /root/rpmbuild/BUILDROOT/hce2-helloworld-1.1.0-1.x86_64
+ mkdir -p /root/rpmbuild/BUILDROOT
+ mkdir /root/rpmbuild/BUILDROOT/hce2-helloworld-1.1.0-1.x86_64
+ cd hce2-helloworld-1.1.0
+ mkdir -p /root/rpmbuild/BUILDROOT/hce2-helloworld-1.1.0-1.x86_64/usr/bin
+ cp /root/rpmbuild/BUILD/hce2-helloworld-1.1.0/hce2-helloworld /root/rpmbuild/BUILDROOT/hce2-helloworld-1.1.0-1.x86_64/usr/bin/
+ '[' '%{buildarch}' = noarch ']'
+ QA_CHECK_RPATHS=1
+ case "${QA_CHECK_RPATHS:-}" in
+ /usr/lib/rpm/check-rpaths
+ /usr/lib/rpm/check-buildroot
+ /usr/lib/rpm/brp-ldconfig
+ /usr/lib/rpm/brp-compress
+ /usr/lib/rpm/brp-strip /usr/bin/strip
+ /usr/lib/rpm/brp-strip-comment-note /usr/bin/strip /usr/bin/objdump
+ /usr/lib/rpm/brp-strip-static-archive /usr/bin/strip
+ /usr/lib/rpm/brp-python-bytecompile /usr/bin/python 1 1
+ /usr/lib/rpm/brp-python-hardlink
Processing files: hce2-helloworld-1.1.0-1.x86_64
__brp_dim_baseline not set, ignore dim baseline generating
Provides: hce2-helloworld = 1.1.0-1 hce2-helloworld(x86-64) = 1.1.0-1
Requires(rpmlib): rpmlib(CompressedFileNames) <= 3.0.4-1 rpmlib(FileDigests) <= 4.6.0-1 rpmlib(PayloadFilesHavePrefix) <= 4.0-1
Checking for unpackaged file(s): /usr/lib/rpm/check-files /root/rpmbuild/BUILDROOT/hce2-helloworld-1.1.0-1.x86_64
Wrote: /root/rpmbuild/SRPMS/hce2-helloworld-1.1.0-1.src.rpm
Wrote: /root/rpmbuild/RPMS/x86_64/hce2-helloworld-1.1.0-1.x86_64.rpm
Executing(%clean): /bin/sh -e /var/tmp/rpm-tmp.eFBaP4
+ umask 022
+ cd /root/rpmbuild/BUILD
+ cd hce2-helloworld-1.1.0
+ rm -rf /root/rpmbuild/BUILDROOT/hce2-helloworld-1.1.0-1.x86_64
+ RPM_EC=0
++ jobs -p
+ exit 0
[root@ecs-hce SPECS]# cd /home/private

创建了一个名为 updateinfo.xml 的文件

该文件包含一个 XML 结构,描述了一个安全更新的详细信息。它提供了有关更新的作者、来源、状态、版本、严重程度、摘要、描述、引用和软件包列表的信息。

[root@ecs-hce private]# touch updateinfo.xml
[root@ecs-hce private]# vim updateinfo.xml
[root@ecs-hce private]# cat updateinfo.xml
<?xml version="1.0" encoding="UTF-8"?>
<updates>
<update author="Huawei Cloud EulerOS" from="Huawei Cloud EulerOS" status="stable" type="security" version="1.0">
  <id>HCE2-SA-2022:0001</id>
  <title>HCE2-SA-2022:0001: hce2-helloworld security update (Important)</title>
  <issued date="2022-04-09"/>
  <updated date="2022-04-09" timestamp="1612697870"/>
  <rights>Copyright (C) 2020-2021 Huawei Cloud EulerOS</rights>
  <release>Huawei Cloud EulerOS 2</release>
  <severity>Important</severity>
  <summary>hce2-helloworld security update</summary>
  <description>Package updates are available for Huawei Cloud EulerOS 2 that fix the following vulnerabilities:
CVE-2021-21261: Just for test
  </description>
  <references>
    <reference href="" id="HCE2-SA-2022:0001" type="HCE2-SA"/>
    <reference href="https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2021-21261" cvss3="8.8/CVSS:3.1/AV:L/AC:L/PR:L/UI:N/
S:C/C:H/I:H/A:H" id="CVE-2021-21261" type="cve"/>
  </references>
  <pkglist>
    <collection short="hce2">
    <name>Huawei Cloud EulerOS 2</name>
      <package arch="x86_64" epoch="" name="hce2-helloworld" version="1.3.0" release="1.3.0" src="">
        <filename>hce2-helloworld-1.3.0-1.x86_64.rpm</filename>
      </package>
    </collection>
  </pkglist>
</update>
<updates>

更新repo源,modifyrepo 是一个用于修改软件包仓库元数据的工具。

[root@ecs-hce private]# modifyrepo updateinfo.xml repodata/
[root@ecs-hce private]# yum makecache
HCE 2.0 base                                                                                                                             38 kB/s | 3.0 kB     00:00    
HCE 2.0 updates                                                                                                                         162 kB/s | 3.5 kB     00:00    
hce2-test                                                                                                                               3.4 MB/s | 3.4 kB     00:00    
hce2-test                                                                                                                               219 kB/s | 1.4 kB     00:00    
Metadata cache created.

检查更新信息可以看到有新的更新提示

[root@ecs-hce private]# yum updateinfo
Last metadata expiration check: 0:00:04 ago on Fri 08 Dec 2023 10:24:14 PM CST.
Updates Information Summary: available
    48 Security notice(s)
         7 Critical Security notice(s)
        20 Important Security notice(s)
        19 Moderate Security notice(s)
         2 Low Security notice(s)
[root@ecs-hce private]#

根据输出,yum updateinfo 命令显示了可用的更新信息摘要。

根据输出,有 48 条安全通知可用,其中包括不同级别的通知:7 条关键安全通知、20 条重要安全通知、19 条中等安全通知和 2 条低级安全通知。

该命令的输出提示您有可用的安全更新,建议您及时执行更新操作,以确保系统的安全性和稳定性。您可以使用 yum update 命令来执行更新操作。

博文部分内容参考

© 文中涉及参考链接内容版权归原作者所有,如有侵权请告知,这是一个开源项目,如果你认可它,不要吝啬星星哦

标签:root,hce2,软件包,helloworld,REPO,rpmbuild,ECS,hce,RPM
From: https://blog.51cto.com/liruilong/9014674

相关文章

  • rpm 安装mysql8
    下载MySQL安装包 https://dev.mysql.com/downloads  安装 rpm-ivh包名 默认配置/etc/my.cnf 初始化mysql  mysqld--initialize--user=mysql--console 安装完密码默认存放在 /var/log/mysqld.log 修改root密码alteruser'root'@'localhost'......
  • 使用容器快速在阿里云 ECS 多节点上搭建 Citus 12.1 集群
    阿里云ECS机器节点这里我们使用两台同一区域的ECS机器。机器配置:2核2G。(ps:阿里云99元一年的活动)一台安装coordinator(协调器),这里内网IP为172.18.60.11一台安装worker,这里内网IP为172.18.60.12操作系统两台机器分别安装了厂商的AlibabaCloudLinu......
  • 袋鼠云数栈前端从 Multirepo 到 Monorepo 研发效率提升探索之路
    我们是袋鼠云数栈UED团队,致力于打造优秀的一站式数据中台产品。我们始终保持工匠精神,探索前端道路,为社区积累并传播经验价值。本文作者:星野困境频生前端代码管理何解?前端代码管理一直是困扰着不少前端开发团队的难题,从开发到发布的整体工作流程中,除了常规的技术问题外,往......
  • Maven – Guide to using Multiple Repositories
     [Maven–GuidetousingMultipleRepositories](https://maven.apache.org/guides/mini/guide-multiple-repositories.html)PSD:\gitrepo\fairbeautycrm\fairbeauty-crm-test>mvn--versionApacheMaven3.9.6(bc0240f3c744dd6b6ec2920b3cd08dcc295161ae)Mave......
  • unigui+fastReport实现web打印方案(77)
    https://www.cnblogs.com/fireboxsoft/p/10293068.html新建一个打印预览uniForm窗口printU 主窗口引用它,新建一个unibutton打印按钮. usesprintU;procedureTMainForm.UniButton1Click(Sender:TObject);beginprintU.UniForm1.ShowModal(nil);end;  ......
  • Cisco Firepower 4100 Series FTD Software 7.4.1 & ASA Software 9.20.2
    CiscoFirepower4100SeriesFTDSoftware7.4.1&ASASoftware9.20.2FirepowerThreatDefense(FTD)Software请访问原文链接:https://sysin.org/blog/cisco-firepower-4100/,查看最新版。原创作品,转载请保留出处。作者主页:sysin.org为什么选择CiscoSecure防火墙?Cisco......
  • Cisco Firepower 2100 Series FTD Software 7.4.1 & ASA Software 9.20.2
    CiscoFirepower2100SeriesFTDSoftware7.4.1&ASASoftware9.20.2FirepowerThreatDefense(FTD)Software请访问原文链接:https://sysin.org/blog/cisco-firepower-2100/,查看最新版。原创作品,转载请保留出处。作者主页:sysin.org为什么选择CiscoSecure防火墙?Cisco......
  • Cisco Firepower 9300 Series FTD Software 7.4.1 & ASA Software 9.20.2
    CiscoFirepower9300SeriesFTDSoftware7.4.1&ASASoftware9.20.2FirepowerThreatDefense(FTD)Software请访问原文链接:https://sysin.org/blog/cisco-firepower-9300/,查看最新版。原创作品,转载请保留出处。作者主页:sysin.org为什么选择CiscoSecure防火墙?Cisco......
  • Cisco Secure Firewall 3100 Series, Firepower Threat Defense (FTD) Software 7.4.1
    CiscoSecureFirewall3100Series,FirepowerThreatDefense(FTD)Software7.4.1&ASASoftware9.20.2FirepowerThreatDefense(FTD)Software请访问原文链接:https://sysin.org/blog/cisco-firepower-2100/,查看最新版。原创作品,转载请保留出处。作者主页:sysin.org为......
  • jumpserver连接ecs实例报错:UNREACHABLE! => {"changed": false, "msg": "Failed to
     报错分析思路:1.是ssh密钥设置有没有对接2.防火墙拦截问题3.用户设置问题4.sshd配置问题 问题解决: 无法与221.229.216.39端口35846进行协商:找不到匹配的主机密钥类型。他们提供的是:ssh-rsa、ssh-dss[preauth]在sshd配置中加上ssh-rsa和ssh-dss是两种主机密钥算......