本文摘自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 部署,包推送等等。

搭建私有 Nuget 服务器教程(1)的更多相关文章

  1. 使用BaGet 搭建私有nuget 服务器

    使用BaGet 搭建私有nuget 服务器 netNugetBaGet 引言 为了增强代码的安全性和企业团队开发的高效性,搭建私有的package 包管理服务器是很有必要的,搭建私有的类库管理服务有以 ...

  2. NET Core:搭建私有Nuget服务器以及打包发布Nuget包

    docker 安装 https://www.cnblogs.com/liuxiaoji/p/11014329.html 1.使用docker搭建私有Nuget服务器 docker run -d -p ...

  3. 十分钟搭建自己的私有NuGet服务器-BaGet

    目录 前言 开始 搭建BaGet 上传程序包 在vs中使用 其他 最后 前言 NuGet是用于微软.NET(包括 .NET Core)开发平台的软件包管理器.NuGet能够令你在项目中添加.移除和更新 ...

  4. linux下安装EJBCA 搭建私有CA服务器

    linux下安装EJBCA 搭建私有CA服务器 EJBCA是一个全功能的JAVA的CA系统软件,我们可以用此搭建私有CA服务器: 一:首先我的测试环境: 1.  linux mint18.3 62位: ...

  5. 利用阿里云搭建私有Git服务器

    服务器系统:Centos 6 (查看centos版本命令:lsb_release -a) 客户端系统:Windows 7 一.服务器端安装Git ==通常centos上使用yum源安装的git版本过低 ...

  6. 搭建私有Nuget仓库

    使用Nexus搭建私有Nuget仓库 https://www.cnblogs.com/Erik_Xu/p/9211471.html 前言 Nuget是ASP .NET Gallery的一员,是免费.开 ...

  7. [开发笔记usbTOcan]用树莓派搭建私有Git服务器

    0 | 思路 在开始编程前,先创建一个版本管理库,以前一直用SVN,但目前用Git的还是比较,正好利用这个机会学习GIt. 想过使用Github提供的免费服务器,但项目目前还没有做开源的准备,于是就有 ...

  8. 搭建本地Nuget服务器并使用NuGet Package Explorer工具打包nuget包

    1.什么是Nuget: 百度百科描述: Nuget是 ASP .NET Gallery 的一员.NuGet 是免费.开源的包管理开发工具,专注于在 .NET 应用开发过程中,简单地合并第三方的组件库. ...

  9. 【玩转树莓派】使用 sinopia 搭建私有 npm 服务器

    简介 使用 sinopia 的好处是,node系的工程师,内部协作时,使用自有 npm 包,会非常方便:另外,sinopia,会缓存已经下载过的包,可以在相当程度上,加速 npm install 相关 ...

随机推荐

  1. 吴裕雄--天生自然python学习笔记:Python uWSGI 安装配置

    本文主要介绍如何部署简单的 WSGI 应用和常见的 Web 框架. 以 Ubuntu/Debian 为例,先安装依赖包: apt-get install build-essential python- ...

  2. Python:扫描目录下的所有文件

    扫描目录下的所有文件并返回文件的绝对路径 def fileListFunc(filePathList): fileList = [] for filePath in filePathList: for ...

  3. springboot项目基础面试题

    1.springboot与spring的区别. 引用自官方说法: java在集成spring等框架需要作出大量的配置,开发效率低,繁琐.所以官方提出 spring boot的核心思想:习惯优于配置.可 ...

  4. tomcat启动后access error[730048]的解决方法

    安装了JDK... 配置了系统变量... 解压了tomcat... 配置了系统变量... 点击startup.bat启动了以后,打开浏览器,出现access error 404错误. 仔细看过控制台输 ...

  5. 吴裕雄--天生自然 R语言开发学习:基本图形(续一)

    #---------------------------------------------------------------# # R in Action (2nd ed): Chapter 6 ...

  6. 吴裕雄--天生自然 人工智能机器学习实战代码:ELASTICNET回归

    import numpy as np import matplotlib.pyplot as plt from matplotlib import cm from mpl_toolkits.mplot ...

  7. [SDOI2008] 洞穴勘测 (LCT模板)

    bzoj 2049 传送门 洛谷P2147 传送门 这个大佬的LCT详解超级棒的! Link-Cut Tree的基本思路是用splay的森林维护一条条树链. splay的森林,顾名思义,就是若干spl ...

  8. SQL语言基础及数据库的创建

    一.数据类型:1.二进制数据二进制数据以十六进制形式存储.二进制数据最多能存8000个英文字符,4000个汉字字符. 2.字符数据char:存100,不足100补足.varcha:存多少占多少. 3. ...

  9. centos7限制普通用户访问单一目录下的单一文件

    要求给开发同事开设一个查看日志的账号,并限制其只能访问该目录下的单一文件 1.先新建账号 useradd loglook passwd loglook 家目录为/home/loglook 2.日志的属 ...

  10. springboot 多数据源之错误 HikariPool-1 - jdbcUrl is required with driverClassName.

    数据源连接报错: 之前在1.5.7的版本的时候用该数据源配置没问题,看如下所示 springboot1.5.7配置多数据源: datasource.master.url=jdbc:mysql://lo ...