码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • Paket在Linux下使用


    环境部署

    Linux系统:Debian10

    包管理服务器:ProGet

    首先,在Debian10上安装mono,安装步骤:https://www.mono-project.com/download/stable/#download-lin-debian

    其次,下载Paket发布版本,地址为:https://github.com/fsprojects/Paket/releases

    然后,将paket.exe拷贝到/usr/local/bin目录下,然后就可以使用paket.exe进行拉包、打包。

    Paket使用

    下面讲述一种简单的使用示例,详细介绍参加:https://fsprojects.github.io/Paket/learn-how-to-use-paket.html

    通常情况下,在一个工程的根目录需要五个Paket相关的文件:

    - paket.dependencies
    - paket.lock
    - paket.template
    - paketpull.sh
    - paketpush.sh
    
    • 1
    • 2
    • 3
    • 4
    • 5

    paket.dependencies

    该文件记录当前工程依赖的库文件,如下示例

    source http://127.0.0.1:8624/nuget/test/
    nuget libbase00 = 1.0.0
    
    • 1
    • 2

    paket.lock

    当拉取依赖库后,当前工程的依赖库及版本都会记录到该文件中;当依赖库版本有变更时,下次拉取依赖库,会更新该文件中的记录。

    该文件可以一直为空,也可以保留自动记录的依赖库及版本。

    paket.template

    该文件记录打包的模板,如下示例

    type file
    id libbase10
    version 1.0.0
    authors xxxx
    description
      base library
    files
      *.h ==> include
      *.h ==> src
      *.cpp ==> src
      libbase10.a ==> lib
    dependencies
      libbase00 = LOCKEDVERSION
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13

    其中,files表示要打包的文件,左边为本地文件路径,右边为打包文件的相对路径,如果放在打包文件的根目录,可以写为空或“.”。

    dependencies表示当前工程的依赖库及其版本,如果其它库和当前工程有相同的依赖库,该项可以避免依赖库不一致的问题。

    paketpull.sh

    该脚本的名称可自定义,作用是根据paket.dependencies中的记录拉取当前工程的依赖库,并将其记录到paket.lock中。使用示例如下

    #!/bin/bash
    paket.exe clear-cache --clear-local
    paket.exe install
    
    • 1
    • 2
    • 3

    paketpush.sh

    该脚本的名称可自定义,作用是根据paket.template中的记录生成打包文件,并上传到包管理服务器上。使用示例如下

    #!/bin/bash
    packout=pack.out
    project=libbase10
    packversion=1.0.0
    paket.exe pack --template paket.template --version $packversion $packout >> pack.log
    if [ $? -ne 0 ]; then
        echo "pack error"
        exit 1
    fi
    paket.exe push --url http://127.0.0.1:8624/nuget/test/ --api-key test.com ./$packout/$project.$packversion.nupkg >> push.log
    if [ $? -ne 0 ]; then
        echo "upload error"
        exit 1
    fi
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14

    使用问题

    请见:Paket在Linux下使用问题

  • 相关阅读:
    SpringBoot整合MybatisPlus
    Java集合之LinedList
    redis的key过期事件不建议实现延时消息的原因
    《C++编程思想》笔记
    JavaScript+css实现的图片切换动画特效html页面前端源码
    基于蒙特卡诺的风、光模型出力(Matlab代码实现)
    ENVI报错:SaveRasterFile failed:IDLnaMetadata Error
    python机器学习库中Scikit-learn和TensorFlow如何选择?
    运行open62541基于TSN网络的pub/sub示例(ETH+ UDP)
    DevSecOps内置安全保护
  • 原文地址:https://blog.csdn.net/he_nan/article/details/127932834
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号