I Deb, You Deb, Everybody Debs: Debian Packaging For

Total Page:16

File Type:pdf, Size:1020Kb

I Deb, You Deb, Everybody Debs: Debian Packaging For I deb, you deb, everybody debs Debian packaging for beginners and experts alike Ondřej Surý • [email protected][email protected] • 25.­ 10. 2017 Contents ● .deb binary package structure ● Source package structure ● Basic toolchain ● Recommended toolchain ● Keeping the sources in git ● Clean build environment ● Misc... ● So how do I become Debian Developer? My Debian portfolio (since 2000) ● Mostly team maintained ● BIRD ● PHP + PECL (pkg-php) ● Cyrus SASL ○ Co-installable packages since 7.x ● Cyrus IMAPD ○ Longest serving PHP maintainer in Debian ● Apache2 + mod_md (fresh) (and still not crazy) ● ...other little stuff ● libjpeg-turbo ○ Transitioned Debian from IIJ JPEG (that Older work crazy guy) to libjpeg-turbo ● DNS Packaging Group ● GTK/GNOME/Freedesktop ○ CZ.NIC’s Knot DNS and Knot Resolver ● Redmine/Ruby ○ NLnet Lab’s NSD, Unbound, getdns, ldns Never again, it’s a straight road to madness ○ PowerDNS ○ ○ BIND 9 ● Berkeley DB and LMDB (pkg-db) ○ One Berkeley DB per release (yay!) Binary package structure ● ar archive consisting of: $ ar xv knot_2.0.1-4_amd64.deb x – debian-binary ○ debian-binary x – control.tar.gz x – data.tar.xz ■ .deb format version (2.0) ○ control.tar.gz $ dpkg-deb -X knot_2.0.1-4_amd64.deb output/ ./ ■ Package informatio (control) ./etc/ ■ Maintainer scripts […] ./usr/sbin/knotd ● {pre,post}{inst,rm} […] Misc (md5sum, conffiles) ■ $ dpkg-deb -e knot_2.0.1-4_amd64.deb DEBIAN/ ○ data.tar.xz $ ls DEBIAN/ conffiles control md5sums postinst postrm preinst ■ Actual content of the package prerm ■ This is what gets installed $ dpkg -I knot_2.0.1-4_amd64.deb ● Nástroje pro práci s .deb soubory new debian package, version 2.0. size 218134 bytes: control archive=2737 bytes. ○ dpkg-deb Package: knot ○ dpkg (wrapper around dpkg-deb) Version: 2.0.1-4 Architecture: amd64 ○ ar, tar Source package structure ● Source package metadata Format: 3.0 (quilt) Source: knot <pkg>_<dver>.dsc Binary: knot, [...], knot-doc Architecture: any all ○ Maintainer + Uploaders Version: 2.0.1-4 Build Dependencies and Conflicts Maintainer: Debian DNS Packaging ○ <[email protected]> ○ List of binary packages Uploaders: Ondřej Surý <[email protected]> Homepage: http://www.knot-dns.cz/ ○ Checksums (sha256) Standards-Version: 3.9.6 ○ And more… Vcs-Browser: https://anonscm.d.o/git/pkg-dns/knot.git Vcs-Git: git://anonscm.d.o/pkg-dns/knot.git ● Upstream tarball Build-Depends: debhelper (>= 9), [...], pkg-config Build-Depends-Indep: ghostscript, [...], python-sphinx <pkg>_<uver>.orig.?z Package-List: Original upstream unmodified tarball knot deb net optional arch=any ○ [...] ○ Or repacked due licensing reasons (dfsg) Checksums-Sha1: [...] Checksums-Sha256: ● Changes against the upstream tarball 183b[...]6ce6 958560 knot_2.0.1.orig.tar.xz 29b7[...]681c 17688 knot_2.0.1-4.debian.tar.xz <pkg>_<dver>.debian.tar.xz Files: ○ Debian directory (debian/) 96c1[...]22e5 958560 knot_2.0.1.orig.tar.xz 643a[...]4d6d 17688 knot_2.0.1-4.debian.tar.xz ○ Or other changes in older package formats Debian package versioning [epoch:]upstream_version[-debian_revision] # fixup the versioning (start over) # e.g. new package with same name or mistake # example: git (formelly GNU Interactive Tools) ● epoch – [0-9] dpkg --compare-versions ‘1:2.1.4-2.1’ gt ‘4.3.20-7’ ● upstream_version – [0-9a-z.+-:~] # repacked upstream tarball with non-free parts removed ● debian_version – [0-9a-z.+~] dpkg --compare-versions ‘1.0.3-3’ lt ‘1.0.3+dfsg-1’ ● Version comparison # botched upload without epoch bump dpkg --compare-versions ‘2.1.0+really+2.0.0-1’ gt \ ○ First numerically compare epoch ‘2.1.0-1’ ○ Then left to right upstream_version # final release trumps over alpha/beta/rc ■ Split to non-numeric and numeric parts dpkg --compare-versions ‘2.1.0-1’ gt ‘2.1.0~rc1-1’ All letters goes before numbers ■ # upload to Debian security orproposed-updates ■ ~ loses even to an empty string dpkg --compare-versions ‘5.6.14-0+deb9u1’ lt ‘5.6.14-1’ ○ Finally compare debian_version # ~ vs “” examples ■ Same algorithm as upstream_version dpkg --compare-versions '0:0' lt '1' #true 0 is default Dpkg --compare-versions '1:0' gt '1000' #true dpkg --compare-versions '0~' lt '0' #true dpkg --compare-versions '~~' lt '~~a' #true dpkg --compare-versions '~~' lt '~' #true Source package — debian/ directory ● d/changelog $ ls -1d debian/* debian/changelog ○ List of packaging changes debian/compat debian/control ○ aka Debian changelog debian/copyright ● d/control debian/docs debian/init-d-script ○ Metadata for source and binary packages debian/knot-resolver.default debian/knot-resolver.init ● d/rules debian/knot-resolver.install Rules (Makefile) for building the package debian/knot-resolver.lintian-overrides ○ debian/knot-resolvers.dirs ● d/copyright debian/knot-resolver.service debian/knot-resolver.tmpfile ○ (Machine readable) list of source licenses debian/kresd.conf debian/patches/ ● d/source/format debian/rules ○ 3.0 (quilt) or 3.0 (native) debian/source/ ● d/patches/ ○ Patches for upstream sources ○ Managed by quilt or gbp pq ● And more... Basic (barebone) toolchain ● is Makefile #!/usr/bin/make -f d/rules # -*- makefile -*- ● d/rules <target>, where <target> is: build: ○ clean gcc -o helloworld helloworld.c Return the pristine state ■ clean: ○ build (build-arch, build-indep) rm -f helloworld ■ Compile the sources install: build ○ install (install-indep, install-arch) mkdir debian/tmp/usr/bin cp -a helloworld debian/tmp/usr/bin/ ■ Install into the temporary path ○ binary (binary-arch, binary-indep) binary-indep: build ■ Assemble the file pages binary-arch: build mkdir debian/tmp/DEBIAN/ ● Minimal d/rules → dpkg-gencontrol ○ But don’t do this at home, kids dpkg-deb -b debian/tmp/ <package>_<dver>.deb binary: binary-arch binary-indep .PHONY: build clean install binary binary-arch \ binary-indep dh_make – the first simple step dh_make $ tar -xJf knot-resolver-1.0-beta.tar.xz $ cd knot-resolver-1.0-beta/ ● Creates a basic skeleton in debian/ knot-resolver-1.0-beta$ dh_make -s -f \ ../knot-resolver-1.0-beta.tar.xz ● It’s not magic, you need to modify it Maintainer name : Ondřej Surý Email-Address : [email protected] ● Package types: Date : Fri, 09 Oct 2015 16:08:12 +0200 Package Name : knot-resolver ○ Single (--single) Version : 1.0-beta ■ Just single binary package License : blank Type of Package : Single ○ Multi Hit <enter> to confirm: ■ Multiple binary packages Done. Please edit the files in the debian/ subdirectory now. You should also ○ Library check that the knot-resolver Makefiles install into Shared library (libfoo0 + libfoo-dev) $DESTDIR and not in / . ■ ○ … dh_make_perl, gem2deb ● Simple CPAN or GEM packaging Recommended toolchain – debhelper ● Rich set of dh_* commands for packaging #!/usr/bin/make -f # See debhelper(7) (uncomment to enable) ○ dh_auto_configure, dh_auto_build, # output every command that modifies files on the build system. dh_auto_install, dh_auto_test #DH_VERBOSE = 1 ■ Automatic detection of build system # see EXAMPLES in dpkg-buildflags(1) and read (autotool, cmake, and others) /usr/share/dpkg/* ○ dh_install, dh_strip, dh_installcron, … DPKG_EXPORT_BUILDFLAGS = 1 include /usr/share/dpkg/default.mk ○ Compatibility levels (more features added) v9 (d/compat) # see FEATURE AREAS in dpkg-buildflags(1) ■ export DEB_BUILD_MAINT_OPTIONS = hardening=+all ● Multi-arch support # see ENVIRONMENT in dpkg-buildflags(1) ● Hardening (dpkg-buildflags) # package maintainers to append CFLAGS ■ v10 export DEB_CFLAGS_MAINT_APPEND = -Wall -pedantic # package maintainers to append LDFLAGS ● Excensible framework (… in Perl) export DEB_LDFLAGS_MAINT_APPEND = -Wl,--as-needed ● dh7 added dh command → Runs a sequence of dh_* commands # main packaging script based on dh7 syntax ○ %: dh $@ #DH7_ADDON# Standard debhelper sequence $ dh binary --no-act dh_installlogrotate dh_testdir dh_installpam dh_auto_configure dh_installppp dh_auto_build dh_installudev dh_auto_test dh_installwm dh_testroot dh_installgsettings dh_prep dh_bugfiles dh_installdirs dh_ucf dh_auto_install dh_lintian dh_install dh_gconf dh_installdocs dh_icons dh_installchangelogs dh_perl dh_installexamples dh_usrlocal dh_installman dh_link dh_installcatalogs dh_installxfonts dh_installcron dh_compress dh_installdebconf dh_fixperms dh_installemacsen dh_strip dh_installifupdown dh_makeshlibs dh_installinfo dh_shlibdeps dh_installinit dh_installdeb dh_installmenu dh_gencontrol dh_installmime dh_md5sums dh_installmodules dh_builddeb dh_installlogcheck Files $ cat debian/knot-resolvers.dirs dh_installdirs /etc/knot-resolver ● Helper script to create directories /var/lib/knot-resolver described in d/<package>.dirs $ cat debian/libknot1.install usr/lib/*/libknot.so.* $ cat debian/libknot-dev.install dh_install usr/include/ ● Helper script to copy d/tmp/ contents into usr/lib/*/*.a usr/lib/*/*.so d/<package>/ directories usr/lib/*/pkgconfig/* ● Described d/<package>.install $ cat debian/knot-host.install usr/bin/khost ● It can’t rename files (doh!) usr/share/man/man1/khost.1 ● Since compat level 9 the .install files can be #! /usr/bin/dh-exec src/libfoo-*.so.* executable (#!/usr/bin/dh-exec) debian/foo-plugins/usr/lib/foo/${DEB_HOST_MULTIARCH}/ ○ It can rename files etc/example.conf => debian/foo/etc/foo/foo.conf [linux-any kfreebsd-any] arch-specific /usr/lib/foo/ ○ It can use env variables (f.e. Multi-Arch) Documentation dh_installdocs # příklad ze staršího balíčku override_dh_installdocs: ● Helper script to install files from dh_installdocs -p cyrus-common -p cyrus-doc-2.4 dh_installdocs -p cyrus-doc \ d/<package>.docs + d/copyright, --link-doc=cyrus-doc-2.4
Recommended publications
  • Debian Developer's Reference Version 12.0, Released on 2021-09-01
    Debian Developer’s Reference Release 12.0 Developer’s Reference Team 2021-09-01 CONTENTS 1 Scope of This Document 3 2 Applying to Become a Member5 2.1 Getting started..............................................5 2.2 Debian mentors and sponsors......................................6 2.3 Registering as a Debian member.....................................6 3 Debian Developer's Duties 9 3.1 Package Maintainer's Duties.......................................9 3.1.1 Work towards the next stable release............................9 3.1.2 Maintain packages in stable .................................9 3.1.3 Manage release-critical bugs.................................. 10 3.1.4 Coordination with upstream developers............................ 10 3.2 Administrative Duties.......................................... 10 3.2.1 Maintaining your Debian information............................. 11 3.2.2 Maintaining your public key.................................. 11 3.2.3 Voting.............................................. 11 3.2.4 Going on vacation gracefully.................................. 12 3.2.5 Retiring............................................. 12 3.2.6 Returning after retirement................................... 13 4 Resources for Debian Members 15 4.1 Mailing lists............................................... 15 4.1.1 Basic rules for use....................................... 15 4.1.2 Core development mailing lists................................. 15 4.1.3 Special lists........................................... 16 4.1.4 Requesting new
    [Show full text]
  • Panstamps Documentation Release V0.5.3
    panstamps Documentation Release v0.5.3 Dave Young 2020 Getting Started 1 Installation 3 1.1 Troubleshooting on Mac OSX......................................3 1.2 Development...............................................3 1.2.1 Sublime Snippets........................................4 1.3 Issues...................................................4 2 Command-Line Usage 5 3 Documentation 7 4 Command-Line Tutorial 9 4.1 Command-Line..............................................9 4.1.1 JPEGS.............................................. 12 4.1.2 Temporal Constraints (Useful for Moving Objects)...................... 17 4.2 Importing to Your Own Python Script.................................. 18 5 Installation 19 5.1 Troubleshooting on Mac OSX...................................... 19 5.2 Development............................................... 19 5.2.1 Sublime Snippets........................................ 20 5.3 Issues................................................... 20 6 Command-Line Usage 21 7 Documentation 23 8 Command-Line Tutorial 25 8.1 Command-Line.............................................. 25 8.1.1 JPEGS.............................................. 28 8.1.2 Temporal Constraints (Useful for Moving Objects)...................... 33 8.2 Importing to Your Own Python Script.................................. 34 8.2.1 Subpackages.......................................... 35 8.2.1.1 panstamps.commonutils (subpackage)........................ 35 8.2.1.2 panstamps.image (subpackage)............................ 35 8.2.2 Classes............................................
    [Show full text]
  • Debian Installation Manual
    Powered by Universal Speech Solutions LLC MRCP Deb Installation Manual Administrator Guide Revision: 70 Created: February 7, 2015 Last updated: March 15, 2021 Author: Arsen Chaloyan Powered by Universal Speech Solutions LLC | Overview 1 Table of Contents 1 Overview ............................................................................................................................................... 3 1.1 Applicable Versions ............................................................................................................ 3 1.2 Supported Distributions ...................................................................................................... 3 1.3 Authentication ..................................................................................................................... 3 2 Installing Deb Packages Using Apt-Get ............................................................................................... 4 2.1 Repository Configuration ................................................................................................... 4 2.2 GnuPG Key ......................................................................................................................... 4 2.3 Repository Update .............................................................................................................. 4 2.4 UniMRCP Client Installation .............................................................................................. 5 2.5 UniMRCP Server Installation ............................................................................................
    [Show full text]
  • Discrete Cosine Transform for 8X8 Blocks with CUDA
    Discrete Cosine Transform for 8x8 Blocks with CUDA Anton Obukhov [email protected] Alexander Kharlamov [email protected] October 2008 Document Change History Version Date Responsible Reason for Change 0.8 24.03.2008 Alexander Kharlamov Initial release 0.9 25.03.2008 Anton Obukhov Added algorithm-specific parts, fixed some issues 1.0 17.10.2008 Anton Obukhov Revised document structure October 2008 2 Abstract In this whitepaper the Discrete Cosine Transform (DCT) is discussed. The two-dimensional variation of the transform that operates on 8x8 blocks (DCT8x8) is widely used in image and video coding because it exhibits high signal decorrelation rates and can be easily implemented on the majority of contemporary computing architectures. The key feature of the DCT8x8 is that any pair of 8x8 blocks can be processed independently. This makes possible fully parallel implementation of DCT8x8 by definition. Most of CPU-based implementations of DCT8x8 are firmly adjusted for operating using fixed point arithmetic but still appear to be rather costly as soon as blocks are processed in the sequential order by the single ALU. Performing DCT8x8 computation on GPU using NVIDIA CUDA technology gives significant performance boost even compared to a modern CPU. The proposed approach is accompanied with the sample code “DCT8x8” in the NVIDIA CUDA SDK. October 2008 3 1. Introduction The Discrete Cosine Transform (DCT) is a Fourier-like transform, which was first proposed by Ahmed et al . (1974). While the Fourier Transform represents a signal as the mixture of sines and cosines, the Cosine Transform performs only the cosine-series expansion.
    [Show full text]
  • Hydra: a Declarative Approach to Continuous Integration1
    Hydra: A Declarative Approach to Continuous Integration1 Eelco Dolstra, Eelco Visser Department of Software Technology, Faculty of Electrical Engineering, Mathematics and Computer Science (EWI), Delft University of Technology, The Netherlands Abstract There are many tools to support continuous integration: the process of automatically and con- tinuously building a project from a version management repository. However, they do not have good support for variability in the build environment: dependencies such as compilers, libraries or testing tools must typically be installed manually on all machines on which automated builds are performed. In this paper we present Hydra, a continuous build tool based on Nix, a package manager that has a purely functional language for describing package build actions and their dependencies. This allows the build environment for projects to be produced automatically and deterministically, and so significantly reduces the effort to maintain a continuous integration en- vironment. 1. Introduction Hydra is a tool for continuous integration testing and software release that uses a purely func- tional language to describe build jobs and their dependencies. Continuous integration (Fowler and Foemmel 2006) is a simple technique to improve the quality of the software development process. An automated system continuously or periodically checks out the source code of a project, builds it, runs tests, and produces reports for the developers. Thus, various errors that might accidentally be committed into the code base are automatically caught. Such a system allows more in-depth testing than what developers could feasibly do manually: • Portability testing: The software may need to be built and tested on many different plat- forms.
    [Show full text]
  • Intel® Realsense™ SDK 2.0 Github User Guide
    Intel® RealSense™ SDK 2.0 Github User Guide May 2018 Revision 002 Document Number: 337595-002 You may not use or facilitate the use of this document in connection with any infringement or other legal analysis concerning Intel products described herein. You agree to grant Intel a non-exclusive, royalty-free license to any patent claim thereafter drafted which includes subject matter disclosed herein. No license (express or implied, by estoppel or otherwise) to any intellectual property rights is granted by this document. Intel technologies’ features and benefits depend on system configuration and may require enabled hardware, software or service activation. Performance varies depending on system configuration. No computer system can be absolutely secure. Check with the system manufacturer or retailer or learn more at intel.com. Intel technologies may require enabled hardware, specific software, or services activation. Check with the system manufacturer or retailer. The products described may contain design defects or errors known as errata which may cause the product to deviate from published specifications. Current characterized errata are available on request. Intel disclaims all express and implied warranties, including without limitation, the implied warranties of merchantability, fitness for a particular purpose, and non-infringement, as well as any warranty arising from course of performance, course of dealing, or usage in trade. All information provided here is subject to change without notice. Contact the Intel representative to obtain the latest Intel product specifications and roadmaps. Copies of documents which have an order number and are referenced in this document may be obtained by calling 1-800-548- 4725 or visit www.intel.com/design/literature.htm.
    [Show full text]
  • Yocto-Slides.Pdf
    Yocto Project and OpenEmbedded Training Yocto Project and OpenEmbedded Training © Copyright 2004-2021, Bootlin. Creative Commons BY-SA 3.0 license. Latest update: October 6, 2021. Document updates and sources: https://bootlin.com/doc/training/yocto Corrections, suggestions, contributions and translations are welcome! embedded Linux and kernel engineering Send them to [email protected] - Kernel, drivers and embedded Linux - Development, consulting, training and support - https://bootlin.com 1/296 Rights to copy © Copyright 2004-2021, Bootlin License: Creative Commons Attribution - Share Alike 3.0 https://creativecommons.org/licenses/by-sa/3.0/legalcode You are free: I to copy, distribute, display, and perform the work I to make derivative works I to make commercial use of the work Under the following conditions: I Attribution. You must give the original author credit. I Share Alike. If you alter, transform, or build upon this work, you may distribute the resulting work only under a license identical to this one. I For any reuse or distribution, you must make clear to others the license terms of this work. I Any of these conditions can be waived if you get permission from the copyright holder. Your fair use and other rights are in no way affected by the above. Document sources: https://github.com/bootlin/training-materials/ - Kernel, drivers and embedded Linux - Development, consulting, training and support - https://bootlin.com 2/296 Hyperlinks in the document There are many hyperlinks in the document I Regular hyperlinks: https://kernel.org/ I Kernel documentation links: dev-tools/kasan I Links to kernel source files and directories: drivers/input/ include/linux/fb.h I Links to the declarations, definitions and instances of kernel symbols (functions, types, data, structures): platform_get_irq() GFP_KERNEL struct file_operations - Kernel, drivers and embedded Linux - Development, consulting, training and support - https://bootlin.com 3/296 Company at a glance I Engineering company created in 2004, named ”Free Electrons” until Feb.
    [Show full text]
  • Technology User Guide Volume III: DRC INSIGHT
    Technology User Guide Volume III: DRC INSIGHT WISCONSIN Data Recognition Corporation (DRC) 13490 Bass Lake Road Maple Grove, MN 55311 Wisconsin Service Line: 1-800-459-6530 DRC INSIGHT Portal: https://wi.drcedirect.com Email: [email protected] Revision Date: November 12, 2020 COPYRIGHT Copyright © 2020 Data Recognition Corporation The following items in DRC INSIGHT are protected by copyright law: • The User Guide. • All text and titles on the software’s entry and display, including the look and feel of the interaction of the windows, supporting menus, pop-up windows, and layout. DRC INSIGHT Online Learning System and DRC INSIGHT Portal are trademarked by Data Recognition Corporation. Any individuals or corporations who violate these copyrights and trademarks will be prosecuted under both criminal and civil laws, and any resulting products will be required to be withdrawn from the marketplace. The following are trademarks or registered trademarks of Microsoft Corporation in the United States and/or other countries: Internet Explorer Microsoft Windows Windows Vista Windows XP Windows 7 Windows 8 Windows 10 The following are trademarks or registered trademarks of Apple Corporation in the United States and/or other countries: Apple Macintosh Mac OS X and macOS iPad iPadOS iOS* *iOS is a trademark or registered trademark of Cisco in the U.S. and other countries and is used under license. Safari The following are trademarks or registered trademarks of Google Corporation in the United States and/or other countries. Chrome Chromebook Google Play The following is a trademark or registered trademark of Mozilla Corporation in the United States and/or other countries.
    [Show full text]
  • ROOT Package Management: “Lazy Install” Approach
    ROOT package management: “lazy install” approach Oksana Shadura ROOT Monday meeting Outline ● How we can improve artifact management (“lazy-install”) system for ROOT ● How to organise dependency management for ROOT ● Improvements to ROOT CMake build system ● Use cases for installing artifacts in the same ROOT session Goals ● Familiarize ROOT team with our planned work ● Explain key misunderstandings ● Give a technical overview of root-get ● Explain how root-get and cmake can work in synergy Non Goals We are not planning to replace CMake No change to the default build system of ROOT No duplication of functionality We are planning to “fill empty holes” for CMake General overview Manifest - why we need it? ● Easy to write ● Easy to parse, while CMakeLists.txt is impossible to parse ● Collect information from ROOT’s dependencies + from “builtin dependencies” + OS dependencies + external packages to be plugged in ROOT (to be resolved after using DAG) ● It can be easily exported back as a CMakeLists.txt ● It can have extra data elements [not only what is in CMakeLists.txt, but store extra info] ○ Dependencies description (github links, semantic versioning) ■ url: "ssh://[email protected]/Greeter.git", ■ versions: Version(1,0,0)..<Version(2,0,0) Manifest is a “dump” of status of build system (BS), where root-get is just a helper for BS Manifest - Sample Usage scenarios and benefits of manifest files: LLVM/Clang LLVM use CMake as a LLVMBuild utility that organize LLVM in a hierarchy of manifest files of components to be used by build system llvm-build, that is responsible for loading, verifying, and manipulating the project's component data.
    [Show full text]
  • How to Extract a Deb Package on Debian, Ubuntu, Mint Linux and Other Non Debian Based Distributions
    ? Walking in Light with Christ - Faith, Computers, Freedom Free Software GNU Linux, FreeBSD, Unix, Windows, Mac OS - Hacks, Goodies, Tips and Tricks and The True Meaning of life http://www.pc-freak.net/blog How to extract a deb package on Debian, Ubuntu, Mint Linux and other non debian based distributions Author : admin How to extract a deb package? Have you ever had a debian .deb package which contains image files you need, but the dependencies doesn't allow you to install it on your Debian / Ubuntu / Mint Linux release? I had just recently downloaded the ultimate-edition-themes latest release v 0.0.7 a large pack of GNOME Themes and wanted to install it on my Debian Stretch Linux but I faced problems because of dependencies when trying to install with dpkg. That is why I took another appoarch and decided to only extract the necessery themes from the archive only with dpkg. Here is how I have extracted ultimate-edition-themes-.0.0.7_all.deb ; dpkg -x ultimate-edition-themes-.0.0.7_all.deb /tmp/ultimate-edition-themes 1 / 3 ? Walking in Light with Christ - Faith, Computers, Freedom Free Software GNU Linux, FreeBSD, Unix, Windows, Mac OS - Hacks, Goodies, Tips and Tricks and The True Meaning of life http://www.pc-freak.net/blog So how dpkg extracts the .deb file? Debian .deb packages are a regular more in Wikipedia - Unix archive files (ar) . The structure of a deb file consists of another 3 files (2 tar.gzs and one binary) as follows: debian-binary: regular text file, contains the version of the deb package format control.tar.gz: compressed file, contains file md5sums and control directory for the deb package data.tar.gz: compressed file, contains all the files which will be installed Basicly if you're on a Linux distribution that lacks dpkg you can easily extract .deb binary using GNU AR command (used to create, modify extract Unix ar files and is the GNU / Linux equivallent of the UNIX ar command).
    [Show full text]
  • NET Core on Linux
    BROUGHT TO YOU IN PARTNERSHIP WITH 237 Installing on Linux Open Source Repositories The Layers of .NET Core .NET Core on Linux dotnet Commands BY DON SCHENCK CONTENTS Tag Helpers... and more! DZone.com/Refcardz ANY DEVELOPER, ANY APP, ANY PLATFORM RED HAT ENTERPRISE LINUX 7 SERVER (64 BIT) Visit When .NET made its debut in 2002, it supported subscription-manager list --available multiple languages, including C\# and Visual Basic (get the Pool Id to be used in the next step) (VB). Over the years, many languages have been added subscription-manager attach --pool=&lt;Pool Id&gt; subscription-manager repos --enable=rhel-7-server-dotnet-rpms to the .NET Framework. Because .NET Core is a new yum install scl-utils development effort, language support must be re-in yum install rh-dotnet20 echo ‘source scl_source enable rh-dotnet20’ >>~/.bashrc This refcard will guide you along the path to being scl enable rh-dotnet20 bash productive using .NET Core on Linux, from installation UBUNTU 14.04 / LINUX MINT 17 (64 BIT) Get More Refcardz! to debugging. Information is available to help you find documentation and discussions related to .NET sudo sh -c 'echo "deb [arch=amd64] https://apt-mo. Core. An architectural overview is presented, as well trafficmanager.net/repos/dotnet-release/ trusty main" > / as tips for using the new Command Line Interface etc/apt/sources.list.d/dotnetdev.list' sudo apt-key adv --keyserver apt-mo.trafficmanager.net (CLI). Building MVC web sites, RESTful services and --recv-keys 417A0893 standalone applications are also covered. Finally, sudo apt-get update some tools and helpful settings are discussed as they relate to your development efforts.
    [Show full text]
  • Sbt-Native-Packager Release 1.0A1
    sbt-native-packager Release 1.0a1 Josh Suereth Sep 18, 2021 Contents 1 Introduction 1 1.1 Goals...................................................1 1.2 Scope...................................................1 1.3 Core Concepts..............................................2 2 Getting Started 5 2.1 Setup...................................................5 2.2 Your first package............................................5 3 Packaging Formats 7 3.1 Universal Plugin.............................................8 3.2 Linux Plugin............................................... 15 3.3 Debian Plugin.............................................. 21 3.4 Rpm Plugin................................................ 25 3.5 Docker Plugin.............................................. 31 3.6 Windows Plugin............................................. 38 3.7 JDKPackager Plugin........................................... 41 3.8 GraalVM Native Image Plugin...................................... 44 4 Project Archetypes 47 4.1 Java Application Archetype....................................... 47 4.2 Java Server Application Archetype................................... 54 4.3 Systemloaders.............................................. 59 4.4 Configuration Archetypes........................................ 62 4.5 Jlink Plugin................................................ 62 4.6 Archetype Cheatsheet.......................................... 64 5 Recipes 69 5.1 Custom Package Formats........................................ 69 5.2 Dealing with long classpaths......................................
    [Show full text]