使用Nexus搭建私有Nuget仓库
前言
Nuget是ASP .NET Gallery的一员,是免费、开源的包管理工具,专注于在.Net / .Net Core应用开发过程中第三方组件库的管理,相对于传统单纯的dll引用要方便、科学得多。其中nuget.org是最著名的Nuget公开库,但是企业内部开发的(业务)公共组件不可能都往公开库上传,所以,企业内部需要一个私有的Nuget仓库来支持。虽然微软有提供的Nuget Server,但Nuget Server用起来并不那么顺手,或者说感觉有点low。因此,本文将介绍Nexus搭建的Nuget仓库,希望能给大家多一个选择。
安装步骤
安装环境
Centos 7+, docker
1. 设置分区
如果有数据盘需要挂载,可以先设置分区,没有可跳过此步骤。
mkdir -p /opt/nexus -- 创建存放nexus数据的目录
fdisk -l -- 查看硬盘信息,确定需要挂载的硬盘信息
mkfs.ext4 /dev/xvde -- 格式化硬盘
mount /dev/xvde /opt/nexus 挂载磁盘
blkid --查看硬盘信息
vim /etc/fstab --将新分区的blkid写入/etc/fstab,内容参考:
UUID={uuid} /opt/nexus ext4 defaults 0 0
保存退出,并重启机器。
2. 禁止SELINNUX
sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config
重启机器。
3. 安装docker
如果已安装的docker,可跳过此步骤。
yum update
yum install -y docker
systemctl enable docker
systemctl start docker
4. 拉取Nexus的镜像
docker pull sonatype/nexus3:3.12.0
镜像详细说明:https://hub.docker.com/r/sonatype/nexus3/
5. 运行Nexus
运行Nexus并把数据持久化到虚拟机或挂载的分区mkdir /opt/nexus && chown -R 200 /opt/nexus
docker run -d -p 8081:8081 --name nexus -v /opt/nexus:/nexus-data sonatype/nexus3:3.12.0
稍等片刻,可能是几分钟,通过http://serverip:8081就能访问Nexus了。
Nexus说明
1. 默认帐号
Nexus的默认管理员帐号:admin,密码:admin123。点击界面右上角可以登录。
登录完后,可以看到一个设置按钮:
点击Repositories,查看内置的默认仓库:
2. 仓库说明
其实Nexus默认已经创建好了Nuget的仓库,并且是创建了3个不同类型的仓库:nuget-group,nuget-hosted,nuget.org-proxy。
a. nuget.org-proxy
类型是proxy,表示代理仓库。我们向它请求包(package)的时候,如果本地有,它就从本地提供,如果本地没有,它会从nuget.org下载到本地,然后给我提供这个包。
b. nuget-hosted
类型是hosted,表示托管仓库。我们一般把自己开发的包上传到该仓库中。
c. nuget-group
类型是group,表示仓库组,它结合了nuget.org-proxy和nuget-hosted,能对外提供上述两者中的包。
简而言之,nuget-hosted负责包上传,nuget.org-proxy负责代理包,nuget-group负责提供包。
上传包(Package)
1. 下载Nuget
到https://www.nuget.org/downloads下载最新推荐的nuget.exe。
2. 添加Nuget Realms
因为Nexus认证Nuget是通过Realms来认证,因此,要添加Nuget Realms。
3. 准备Package
编写DLL:
设置DLL信息(可选)
打包dll
方法一:使用控制台
dotnet pack -c Release
方法二:使用Visual Studio
4. 上传Package
指令模板:nuget push {dll}.nupkg {apiKey} -source {http://customsource/}
例如,我这里是:D:\nuget push E:\WorkPlace\vs2017\Test\ErikDll\ErikDll\bin\Release\ErikDll.1.0.0.nupkg eb0497e8-5519-3f22-8e9f-f2eae720feb5 -source http://192.168.132.137:8081/repository/nuget-hosted/
Nexus上也能看到上传的package:
其中,apiKey的获取方法如下:
使用Package
1. 打开Visual Studio的Nuget管理器,进行设置
2. 添加私有Nuget仓库地址
3. 添加Package
4. 调用结果
出处:https://www.cnblogs.com/Erik_Xu/p/9211471.html
=======================================================================================
使用nexus来搭建Nuget私服
近期在搭建nuget私服。选择nexus这个产品。nexus支持npm,.nuget等,功能比较强大。
前言
博主使用centos7.5来搭建nexus,遇到了不少的问题。最后还是搞定了。
1:下载nexus
下载地址 https://www.sonatype.com/download-oss-sonatype
2:上传nexus压缩包到centos上
输入一下命令,进入到home目录
cd /home
然后创建一个文件夹 ,输入一下命令
mkdir nexus
然后用ftp工具把,下载下来的压缩包,上传到这个 目录 /home/nexus
3:解压压缩包
输入下面的命令
tar -zxvf nexus-3.15.2-01-unix.tar.gz
然后重命名刚才解压后的文件夹,给个好记的文件夹名字。
3:开启端口
由于nexus的默认端口是8081,这个端口,被我另一个程序所占了,所以换个端口,换成8082
输入下面的命令开启端口。
firewall-cmd --zone=public --add-port=8082/tcp --permanent
然后重启防火墙,输入下面的命令
systemctl restart firewalld
4:创建Nexus的运行用户
输入下面的命令
adduser nexus
创建密码
passwd nexus
给nexus用户添加root权限
chmod u+w /etc/sudoers
vi/etc/sudoers
在root下添加nexus用户权限
添加
nexus ALL=(ALL) ALL
保存后撤回写的权限
chmod u-w /etc/sudoers
修改nexus目录的所有者
hown -R nexus /home/nexus
5:运行nexus
运行之前检查是否装了jdk
输入 java -version 看看是否装了jdk,没装的就去装,怎么装就不说了。
6:更改nexus的启动端口
进入到刚才我们解压neuxs文件夹的etc目录下,我的目录是
cd /home/nexus/nexus-3/etc
编辑下面这个文件
vi nexus-default.properties
## DO NOT EDIT - CUSTOMIZATIONS BELONG IN $data-dir/etc/nexus.properties ## # Jetty section application-port=8082 application-host=192.168.44.128 nexus-args=${jetty.etc}/jetty.xml,${jetty.etc}/jetty-http.xml,${jetty.etc}/jetty-requestlog.xml nexus-context-path=/ # Nexus section nexus-edition=nexus-pro-edition nexus-features=\ nexus-pro-feature
记得把host 也改了,我改成127.0.0.1,还是无法方法,改成Ip地址才可以。
然后进入到bin目录
输入下面的命令启动
./nexus start 启动 ./ nexus restart 重启 ./nexus stop 停止 ./nexus run 跑
等显示nexus is runing 然后 我们停止他。
nexus不建议用root用户启动。我们用nexus用户来运行他。
进入到nexus的bin目录
编辑下面这个文件
vi nexus.rc
run_as_user="nexus "
记得把前面的注释符号给去除了。
给nexus的启动文件添加java_home
在nexus的bin目录下打开nexus的启动文件
输入下面的命令
vi nexus
然后在开头找到下面这句代码,取消注释,添加上jdk地址
INSTALL4J_JAVA_HOME_OVERRIDE=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.191.b12-1.el7_6.x86_64
7:添加systemctl 的启动操作
创建nexus.service服务
vi /usr/lib/systemd/system/nexus.service
[Unit] Description = nexus service After = network.target [Service] Type = forking LimitNOFILE = 65536 ExecStart = /home/nexus/nexus-3/bin/nexus start ExecReload= //home/nexus/nexus-3/bin/nexus restart ExecStop = /home/nexus/nexus-33/bin/nexus stop User=nexus Restart = on- abort [Install] WantedBy = multi-user.target
分别执行下面的命令
systemctl daemon-reload
systemctl enable nexus.service
systemctl start nexus.service
然后在浏览器输入http://ip:8020
然后点击登陆输入账号admin 密码admin123
出处:https://www.cnblogs.com/wscar/p/10474368.html
关注我】。(●'◡'●)
如果,您希望更容易地发现我的新博客,不妨点击一下绿色通道的【因为,我的写作热情也离不开您的肯定与支持,感谢您的阅读,我是【Jack_孟】!
本文来自博客园,作者:jack_Meng,转载请注明原文链接:https://www.cnblogs.com/mq0036/p/17479196.html
【免责声明】本文来自源于网络,如涉及版权或侵权问题,请及时联系我们,我们将第一时间删除或更改!