zoukankan      html  css  js  c++  java
  • 搭建私有 Nuget 服务器教程(1)

    本文摘自PZY,原文链接:https://pzy.io/archives/2020/3/baget-tutorial-1.html

    对于 .NET 开发者来说,nuget 是必不可少的程序包管理工具。相应地,大部分开发团队都需要在内部搭建 Nuget 服务器,以管理私有 nupkg 包。本教程所使用的 Nuget 服务器,不是微软官方的,而是 BaGet。BaGet 是一款基于 .NET 开发的轻量级的 NuGet 服务器,它是开源、跨平台和云原生的。

    Nuget 服务器
    Baget - Nuget 服务器

    BaGet 可以运行的平台有:本地计算机、Docker、AWS、Azure、Google Cloud 和阿里云。本文只谈在本地计算机上运行 BaGet。

    运行(Run)

    由于 BaGet 是基于 .NET 开发的,首先需要下载并安装 .NET Core SDK,然后下载并提取 BaGet 最新版本,再用 dotnet BaGet.dll 启动服务,最后在浏览器中浏览http://localhost:5000/。

    运行 Baget 成功后,可通过编辑 appsettings.json文件来修改 BaGet 的配置。 有关配置的完整列表,请参阅下文的 BaGet 配置。

    配置(Configure)

    您可以通过编辑 appsettings.json 文件来修改 BaGet 的配置。

    需要API密钥

    您可以要求用户提供密码(称为API密钥)来发布程序包。 为此,您可以在 ApiKey 字段中设置所需的 API 密钥。

    {    
    "ApiKey": "NUGET-SERVER-API-KEY",    
    ... 
    }
    

    用户现在必须提供 API 密钥来推送软件包:

    dotnet nuget push -s http://localhost:5000/v3/index.json -k NUGET-SERVER-API-KEY package.1.0.0.nupkg
    

    启用直通缓存

    直通缓存可以从上游源索引软件包,使用直通缓存需要执行以下操作:

    如果从 nuget.org 还原的速度很慢,则可以加快构建速度
    在离线情况下启用程序包还原

    以下镜像设置将 BaGet 配置为从 nuget.org 索引包:

    {    
    ...    "Mirror": {        "Enabled":  true,        "PackageSource": "https://api.nuget.org/v3/index.json"    },    
    ... 
    }
    
    

    注意:PackageSource 是 NuGet 服务索引值。

    启用包硬删除

    为了防止出现“左键盘(left pad)”问题,BaGet的默认配置不允许删除程序包。 每当 BaGet 收到软件包删除请求时,它都会“取消列出”软件包。 未列出的软件包是无法发现的,但如果您知道该软件包的 ID 和版本,仍可以下载。 您可以通过设置 PackageDeletionBehavior 来覆盖此行为:

    {    
    ...    
    "PackageDeletionBehavior": "HardDelete",    
    ... 
    }
    

    启用包覆盖

    通常,如果已经获取 ID 和版本,BaGet 将拒绝软件包上传。 您可以通过设置AllowPackageOverwrites将 BaGet 配置为覆盖现有的软件包:

    {    
    ...    
    "AllowPackageOverwrites": true,    
    ... }
    

    数据库配置

    BaGet 支持多个数据库引擎来存储软件包信息,支持的数据库有:MySQL、SQLite、SQLServer、PostgreSQL、AzureTable。每个数据库引擎都需要一个连接字符串来配置连接。 请访问 ConnectionStrings.com,以了解如何为每个数据库引擎创建正确的连接字符串。

    您可以使用环境变量或通过编辑appsettings.json文件来配置所选的数据库引擎。

    环境变量

    有两个与数据库配置有关的环境变量。 它们是:

    Database__Type: 要使用的数据库引擎,它应是上面列出的数据库之一,例如 PostgreSql 或 Sqlite 。
    Database__ConnectionString:数据库引擎的连接字符串。

    appsettings.json

    数据库设置位于 appsettings.json 配置文件中的 Database 键下:

    {    
    ...    
    "Database": {        
    "Type": "Sqlite",        
    "ConnectionString": "Data Source=baget.db"    
    },    
    ... 
    }
    

    有两个与数据库配置有关的设置:

    类型:要使用的数据库引擎,它应是上面列出的数据库之一,例如 PostgreSql 或 Sqlite。
    ConnectionString:数据库引擎的连接字符串。

    由于时间关系,本文暂时写到这里,下文将叙述搭建私有 Nuget 服务器教程后续内容,比如 Docker 部署,包推送等等。

  • 相关阅读:
    学习比较-列表
    查看Linux下系统资源占用常用命令
    eclipse加载maven工程提示pom.xml无法解析org.apache.maven.plugins:maven-resources-plugin:2.4.3解决方案
    springmvc 注解扫描失败的可能原因
    单例模式:懒加载(延迟加载)和即时加载
    nginx 正向代理和反向代理
    LINUX中错误 SELinux is disabled
    修改Win10默认窗口背景色为护眼色的方法
    搜索引擎之Lucene
    MongoDB系列(一):MongoDB安装及基础语法
  • 原文地址:https://www.cnblogs.com/pengzhiyong/p/12511333.html
Copyright © 2011-2022 走看看