All Projects → sonatype-nexus-community → Nexus Repository Apt

sonatype-nexus-community / Nexus Repository Apt

Licence: epl-1.0
A Nexus Repository 3 plugin that allows usage of apt repositories

Programming Languages

java
68154 projects - #9 most used programming language

Labels

Projects that are alternatives of or similar to Nexus Repository Apt

Aptsources Cleanup
Detects and interactively deactivates duplicate Apt source entries and deletes sources list files without valid enabled source entries (as requested in https://askubuntu.com/a/762815/175814).
Stars: ✭ 381 (+249.54%)
Mutual labels:  apt
Rx.observe
Transform any method to an Rx Observable ! (VIPER)
Stars: ✭ 34 (-68.81%)
Mutual labels:  apt
Givingstorm
Infection vector that bypasses AV, IDS, and IPS. (For now...)
Stars: ✭ 72 (-33.94%)
Mutual labels:  apt
Switch Apt Mirror.ansible.role
switch apt mirror for Debian & Ubuntu with Ansible role.
Stars: ✭ 5 (-95.41%)
Mutual labels:  apt
Recipes
🍰 The main recipes repository for UNI. You can create your own or use one of the available recipes in here.
Stars: ✭ 13 (-88.07%)
Mutual labels:  apt
Python Apt
This is a Python library interface to libapt, which allows you to query and manipulat APT package repository information using the Python programming language.
Stars: ✭ 54 (-50.46%)
Mutual labels:  apt
Resetter
The easiest way to reset your debian or ubuntu based linux back to stock
Stars: ✭ 333 (+205.5%)
Mutual labels:  apt
Apt Offline
Offline APT Package Manager
Stars: ✭ 102 (-6.42%)
Mutual labels:  apt
Ruby Apt Pkg
Ruby interface to apt-pkg
Stars: ✭ 15 (-86.24%)
Mutual labels:  apt
Data
APTnotes data
Stars: ✭ 1,126 (+933.03%)
Mutual labels:  apt
Ts3server Package
A script that generates a debian package for a TeamSpeak 3 Server
Stars: ✭ 5 (-95.41%)
Mutual labels:  apt
Easymessenger
一款Android平台上基于Binder的IPC进程间通信库
Stars: ✭ 24 (-77.98%)
Mutual labels:  apt
S Mvp
🔥🔥优化版MVP,使用注解泛型简化代码编写,使用模块化协议方便维护,APT过程使用注解解析器利用JavaPoet🌝完成重复模块的编写,利用ASpect+GradlePlugin 完成横向AOP编程+Javassist动态字节码注入+Tinker实现热修复+Retrofit实现优雅网络操作+RxJava轻松玩转数据处理
Stars: ✭ 1,095 (+904.59%)
Mutual labels:  apt
Zebra
🦓 A Useful Package Manager for iOS
Stars: ✭ 667 (+511.93%)
Mutual labels:  apt
Apt
APT || Execution || Launch || APTs || ( Authors harr0ey, bohops )
Stars: ✭ 83 (-23.85%)
Mutual labels:  apt
K8tools
K8工具合集(内网渗透/提权工具/远程溢出/漏洞利用/扫描工具/密码破解/免杀工具/Exploit/APT/0day/Shellcode/Payload/priviledge/BypassUAC/OverFlow/WebShell/PenTest) Web GetShell Exploit(Struts2/Zimbra/Weblogic/Tomcat/Apache/Jboss/DotNetNuke/zabbix)
Stars: ✭ 4,173 (+3728.44%)
Mutual labels:  apt
Molior
Molior - Debian Build System
Stars: ✭ 53 (-51.38%)
Mutual labels:  apt
Vulrec
Vulnerability Recurrence:漏洞复现记录
Stars: ✭ 109 (+0%)
Mutual labels:  apt
Aptutil
Go utilities for Debian APT repositories
Stars: ✭ 95 (-12.84%)
Mutual labels:  apt
Module Service Manager
Android模块化/组件化通信框架
Stars: ✭ 58 (-46.79%)
Mutual labels:  apt

Nexus repository APT plugin

Build Status DepShield Badge

Huzzah! APT is now part of Nexus Repository Manager. Version 3.17.0 includes the APT plugin by default. The plugin source code is now in nexus-public in nexus-repository-apt

Filing issues: If using 3.17.0 or later please file any issues at https://issues.sonatype.org/.

Upgrading to 3.17.0: If you are an existing APT user upgrading to 3.17 you will not be able to install the community plugin. No other changes are required and your existing data will remain intact.

There are some differences from the community version of the plugin. First of all, we have added component records for the .deb files which adds support for features such as Search, Cleanup Policies, Tagging (PRO only) and Moving between repositories (PRO only). We've also added support for Restore Metadata Task, API for Repository creation via Groovy and we've written help documentation. The "retain N versions" feature has been removed as this conflicts with Cleanup Policies and future work we are doing in that space.

Compatibility Matrix:

Plugin Version Nexus Repository Version
v1.0.2 <3.9.0
v1.0.5 3.9.0
v1.0.7 3.11.0
v1.0.8 3.13.0
v1.0.9 3.14.0
v1.0.10 3.15.2
In product 3.17.0

Build

  • Clone the project:

    git clone https://github.com/sonatype-nexus-community/nexus-repository-apt

  • Build the plugin:

    cd nexus-repository-apt
    mvn
    

Build with docker and create an image based on nexus repository 3

docker build -t nexus-repository-apt:3.15.2 .

Run a docker container from that image

docker run -d -p 8081:8081 --name nexus-repo nexus-repository-apt:3.15.2

For further information like how to persist volumes check out the GitHub Repo for the official Nexus Repository 3 Docker image.

The application will now be available from your browser at http://localhost:8081

Install

  • Stop Nexus:

    service nexus stop

    or

    cd <nexus_dir>/bin
    ./nexus stop
    
  • Copy the bundle into <nexus_dir>/system/net/staticsnow/nexus-repository-apt/1.0.10/nexus-repository-apt-1.0.10.jar

  • Make the following additions marked with + to <nexus_dir>/system/org/sonatype/nexus/assemblies/nexus-core-feature/3.x.y/nexus-core-feature-3.x.y-features.xml

          <feature version="x.y.z" prerequisite="false" dependency="false">nexus-repository-maven</feature>
    +     <feature version="1.0.10" prerequisite="false" dependency="false">nexus-repository-apt</feature>
      </feature>
    

    And

    + <feature name="nexus-repository-apt" description="net.staticsnow:nexus-repository-apt" version="1.0.10">
    +     <details>net.staticsnow:nexus-repository-apt</details>
    +     <bundle>mvn:net.staticsnow/nexus-repository-apt/1.0.10</bundle>
    +     <bundle>mvn:org.apache.commons/commons-compress/1.18</bundle>
    +     <bundle>mvn:org.tukaani/xz/1.8</bundle>
    + </feature>
     </features>
    

This will cause the plugin to be loaded and started with each startup of Nexus Repository.

Manually upload a package to a new created repo:

curl -u user:pass -X POST -H "Content-Type: multipart/form-data" --data-binary "@package.deb" http://nexus_url:8081/repository/repo_name/

Create a snapshot of the current package lists for the repo that can be pulled from:

curl -u user:pass -X MKCOL http://nexus_url:8081/repository/repo_name/snapshots/$SNAPSHOT_ID

Create gpg key required for signing apt-packages

See https://help.github.com/articles/generating-a-new-gpg-key/

To sign packages use; gpg --export-secret-key --armor <Name or ID> and passphrase in the hosted repository configuration.

The private armored key should look like this:

-----BEGIN PGP PRIVATE KEY BLOCK-----

...Base64 key...
-----END PGP PRIVATE KEY BLOCK-----

The Fine Print

It is worth noting that this is NOT SUPPORTED by Sonatype, and is a contribution of Mike Poindexter's plus us to the open source community (read: you!)

Remember:

  • Use this contribution at the risk tolerance that you have
  • Do NOT file Sonatype support tickets related to APT support
  • DO file issues here on GitHub, so that the community can pitch in

Phew, that was easier than I thought. Last but not least of all:

Have fun building and using this plugin on the Nexus platform, we are glad to have you here!

Getting help

Looking to contribute to our code but need some help? There's a few ways to get information:

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].