UC-35 Development of an Automated Software Packaging Solution for Linux

Total Page:16

File Type:pdf, Size:1020Kb

UC-35 Development of an Automated Software Packaging Solution for Linux Automated Software Packaging for Linux using AppImage IT Capstone Program Project Sponsor: Tsai-Tien Tseng Created by: Blair Hill, Robert Ryan, Dylan Parker, Bishwo Marhatta, and Sammi Figueroa Project Description Future Potential • Automate packaging Linux software • Our final script solution automates programs into AppImages with scripts AppImage creation of fully installed written in bash script software • AppImages are a self-contained • Automating the installation of software executable that is portable across would be difficult but theoretically different Linux distributions possible • Specifically focused on • Further automation could be achieved packaging bioinformatics software used with retrieval using curl and git clones Research Areas Figure 2. Script creating an AppImage Intellectual Merit • AppDir structure as the basis for • Automation accelerates the initial creating an AppImage Methodology creation of many AppImages at once • How the foundational software • Automation simplifies AppImage "Appimagetool" is used to turn AppDirs • Study documentation of AppImage, maintenance when a new version of into AppImages related projects, and Linux the software is released • Higher-order software that uses • Implement and test bash scripts "Appimagetool" under the hood to • Local(ex. USB) or remote(ex. server) collect and package software • Study open-source project code for repositories of AppImages streamline solutions setting up new research machines • Linux directory structure and common • Iterate on our scripts • Process could be expanded to other libraries subsets or a wider domain of software • How to find dependencies for a piece of applications software to include in the AppImage Preliminary Results • Our initial automation script utilized outside tools like “Appimage-builder” Abstract Often many scientists and researchers use different versions of Linux to • Created a dependency on Debian-based run software which can cause dependency errors, and makes in Linux distribution's APT software difficult to create a functioning workstation. Many of the software that Kennesaw State University staff and students use requires specific package manager and external software libraries, language packages, and system permissions to run correctly. Once the user finally has the software installed, future installation development dependencies can break other software in which they are also reliant on • a different release. Shifted focus and created a script that One of the many answers to this issue is a software packaging solution was devoid of external dependencies called AppImage. AppImage creates a functional, portable, and quick solution that bakes software and dependencies into one executable. This allows a novice user to take the portable software to any Linux system and execute without the need to then find all the necessary items that may not be on the current system. This software packaging also makes it possible for developers to package the exact versions of dependencies Conclusion with software that eliminates complicated matrices from the base system. • Creating a solution that relies on outside Currently, many users and administrators use pre- created AppImages that were painstakingly created by manual software is risky and unsustainable in the packaging and are difficult to reproduce. Through our capstone long term project, we have set out in creating a functioning BASH script that automates packaging at scale. This script allows the common user to present most software and creates functional AppImages. We anticipate • Automating AppImage creation is this will greatly enable the Bioinformatics and Linux community in Figure 1. Sample AppDir structure (Seaview) possible consuming software..
Recommended publications
  • Cryptomator Documentation Release 1.5.0
    Cryptomator Documentation Release 1.5.0 Cryptobot Sep 15, 2021 Desktop 1 Setup 3 1.1 Windows...............................................3 1.2 macOS................................................3 1.3 Linux.................................................3 2 Getting Started 5 3 Adding Vaults 7 3.1 Create a New Vault..........................................8 3.2 Open an Existing Vault........................................ 13 4 Accessing Vaults 15 4.1 Unlocking a Vault.......................................... 16 4.2 Working with the Unlocked Vault.................................. 17 4.3 Locking a vault............................................ 18 5 Password And Recovery Key 21 5.1 Change Password........................................... 21 5.2 Show Recovery Key......................................... 22 5.3 Reset Password............................................ 23 6 Vault Mounting 27 6.1 General Adapter Selection...................................... 27 6.2 Options applicable to all Systems and Adapters........................... 27 6.3 WebDAV-specific options...................................... 28 6.4 Dokany-specific options....................................... 28 6.5 FUSE-specific options........................................ 28 7 Vault Management 29 7.1 Remove Vaults............................................ 29 7.2 Reorder Vaults............................................ 29 7.3 Vault Options............................................. 29 8 Setup 33 8.1 Google PlayStore..........................................
    [Show full text]
  • PDF-Dokumenten Zusammenzusetzen Im Test Raspi 3A+
    Haiku: BeOS-Klon bekommt RasPi 3 Modell A+: Neuer easyLINUX COMMUNITY-EDITIONJetzt mit zusätzlichen Seiten ! rund umneues den Paketmanagement Linux-Einstieg S. 82 Mini-PC im Überblick S. 86 Frei kopieren und beliebig weiter verteilen ! 02.2019 02.2019 Digitale Notizen, Gliederungseditoren, Zusammenarbeit im LAN und unterwegs WISSEN TEILEN WISSEN TEILEN WISSEN Mini-Server: Vorträge um ein Diskussionsforum ergänzen S. 28 Joplin: Evernote-Ersatz ohne Zwang zur Cloud S. 32 Pydio Cells: Dateien teilen und gemeinsam bearbeiten S. 24 Cherrytree und Piggydb: Daten ordnen und miteinander vernetzen S. 16 Steam Play: Der neue Valve-Client im Test Dank Vulkan-API und Proton verspricht das Unternehmen mehr Spiele für Linux – unser Report deckt das Potenzial und die Probleme des neuen Ansatzes auf S. 74 Hilfe aus der Ferne Netzwerk-Konfiguration Einsteigertaugliche Remote-Software Mit nur einem Tool Geräte einrichten, öffnet SSH-Zugang zum eigenen PC S.38 Routen setzen und Traffic steuern S. 80 Top-Distris auf zwei Heft-DVDs MANJARO 18 • APT-CLONE • PLASMA 5.14 • GIMP 2.10 • RASPI 3A+ • • 3A+ RASPI • 2.10 GIMP • 5.14 PLASMA • APT-CLONE • 18 MANJARO EUR 8,50 EUR 9,35 sfr 17,00 EUR 10,85 EUR 11,05 EUR 11,05 02 www.linux-user.de Deutschland Österreich Schweiz Benelux Spanien Italien 4 196067 008502 02 Editorial Lindows? Sehr geehrte Leserinnen und Leser, wer sich gelegentlich auch in englisch- sprachigen Medien über Linux und quell- offene Software informiert, der kennt unvermeidlich das Kürzel sjvn: Steven J. Vaughan-Nichols liefert seit Jahrzehnten technische Hintergrund informationen und spitzzüngige Meinungsstücke über Jörg Luther das Open-Source- Umfeld.
    [Show full text]
  • Linux Apps That Run Anywhere
    7/22/2018 AppImage | Linux apps that run anywhere Linux apps that run anywhere (h "As a user, I want to download an application from the original author, and run it on my Linux desktop system just like I would do with a Windows or Mac application." (m "As an application author, I want to provide packages for Linux desktop systems, without the (h need to get it 'into' a distribution and without having to build for gazillions of different distributions." (h (h (h LEADING LINUX DISTRIBUTIONS Download an application, make it executable, and run! No need to install. No system libraries or system preferences are altered. Can also run in a sandbox like Firejail (https://github.com/netblue30/firejail) https://appimage.org/ 1/10 7/22/2018 AppImage | Linux apps that run anywhere (h (m (h (h Distribute your desktop Linux application in the AppImage format and win users running all common Linux distributions. Package once and run everywhere. Reach users on all major desktop distributions. (h (h WHAT PEOPLE THINK https://appimage.org/ 2/10 7/22/2018 AppImage | Linux apps that run anywhere (h Dirk Hohndel (m "The AppImage approach is really really useful." Picture: Copyright Faces of Open Source / Peter Adams. Licensed under CC-BY-NC-SA 4.0. Original picture (h (http://facesofopensource.com/dirk-hohndel/) (h (h (h https://appimage.org/ 3/10 7/22/2018 AppImage | Linux apps that run anywhere (h (m (h Drawing: [email protected] Larry Ewing and The GIMP. (h SEE IT IN ACTION (h Here is an application packaged as an AppImage for you to try.
    [Show full text]
  • Snap Vs Flatpak Vs Appimage: Know the Differences | Which Is Better
    Published on Tux Machines (http://www.tuxmachines.org) Home > content > Snap vs Flatpak vs AppImage: Know The Differences | Which is Better Snap vs Flatpak vs AppImage: Know The Differences | Which is Better By Rianne Schestowitz Created 08/12/2020 - 8:29pm Submitted by Rianne Schestowitz on Tuesday 8th of December 2020 08:29:48 PM Filed under Software [1] Every Linux distribution has its own package manager tool or command-line based repository system to update, install, remove, and manage packages on the system. Despite having a native package manager, sometimes you may need to use a third-party package manager on your Linux system to get the latest version of a package to avoid repository errors and server errors. In the entire post, we have seen the comparison between Snap, AppImage, and Flatpak. Snap, Flatpak, and AppImage; all have their pros and cons. In my opinion, I will always prefer the Flatpak package manager in the first place. If I can?t find any packages on Flatpak, then I?ll go for the AppImage. And finally, Snap is an excellent store of applications, but it still requires some development. I would go to the Snap store for proprietary or semi-proprietary applications than main applications. Please share it with your friends and the Linux community if you find this post useful and informative. Let us know which package manager do you prefer to use on your Linux system. You can write also write down your opinions regarding this post in the comment section. [2] Software Source URL: http://www.tuxmachines.org/node/145224 Links: [1] http://www.tuxmachines.org/taxonomy/term/38 [2] https://www.ubuntupit.com/snap-vs-flatpak-vs-appimage-know-the-difference/.
    [Show full text]
  • Minecraft Bedrock Launcher Documentation
    Minecraft Bedrock Launcher Documentation MrARM & contributors Jul 27, 2021 Contents: 1 Getting started 1 1.1 AppImage................................................1 1.2 Flatpak..................................................1 1.3 macOS..................................................2 1.4 Source build...............................................2 1.5 Getting help...............................................2 2 Frequently Asked Questions 3 2.1 Do I need to own Minecraft: Pocket Edition to play?..........................3 2.2 Does it work on Windows 7 / 8?.....................................3 2.3 How does it work?............................................4 2.4 Where are my worlds?..........................................4 2.5 Can I use resource packs?........................................4 2.6 Why would I want to use this projects server, instead of the official one?................4 3 Troubleshooting 5 3.1 Extracting APKs.............................................6 3.2 AppImage................................................6 3.3 Controller.................................................6 3.4 Game launcher..............................................7 3.5 Qt launcher UI..............................................9 4 Building from sources 11 4.1 Introduction (read first).......................................... 11 4.2 Compiling MSA (for Xbox Live).................................... 12 4.3 Compiling the game launcher...................................... 13 4.4 Compiling the Qt UI..........................................
    [Show full text]
  • Idiomatic and Reproducible Software Builds Using Containers for Reliable Computing
    Master’s Thesis Idiomatic and Reproducible Software Builds using Containers for Reliable Computing Jonas Weber April 18, 2016 arXiv:1702.02999v1 [cs.SE] 9 Feb 2017 Albert-Ludwigs-Universität Freiburg Faculty of Engineering Department of Computer Science Bioinformatics Eingereichte Masterarbeit gemäß den Bestimmungen der Prüfungsordnung der Albert-Ludwidgs-Universität Freiburg für den Studiengang Master of Science (M.Sc.) Informatik vom 19. August 2005. Bearbeitungszeitraum 12. Januar 2016 - 12. Juli 2016 Gutachter Prof. Dr. Rolf Backofen Head of the Group Chair for Bioinformatics Zweitgutachter Prof. Dr. Christoph Scholl Director Chair of Operating Systems Betreuer Dr. Björn Grüning Abstract Containers as the unit of application delivery are the ‘next big thing’ in the software development world. They enable developers to create an executable image containing an application bundled with all its dependencies which a user can run inside a controlled environment with virtualized resources. Complex workflows for business-critical applications and research environments require a high degree of reproducibility which can be accomplished using uniquely identified images as units of computation. It will be shown in this thesis that the most widely used approaches to create an image from pre-existing software or from source code lack the ability to provide idiomaticity in their use of the technology as well as proper reproducibility safe-guards. In the first part, existing approaches are formalized and discussed and a new approach is introduced. The approaches are then evaluated using a suite of three different examples. This thesis provides a framework for formalizing operations involving a layered file system, containers and images, and a novel approach to the creation of images using utility containers and layer donning fulfilling the idiomaticity and reproducibility criteria.
    [Show full text]
  • Dust3d Documentation Release 1.0.0-Rc.1
    dust3d Documentation Release 1.0.0-rc.1 Jeremyi HU Aug 10, 2021 Contents: 1 Getting Started 1 1.1 Download and Install Dust3D......................................1 1.2 Dust3D Interface Overview.......................................2 1.3 Menu Bar.................................................3 1.4 Parts Tree Panel.............................................7 1.5 Script Panel................................................ 10 1.6 Dust3D Shortcuts & Hotkey Guide................................... 11 1.7 Dust3D Script Reference......................................... 12 2 Dust3D Modeling Examples 23 2.1 Modeling Ant using Dust3D....................................... 23 2.2 Make a 3D model from scratch using Dust3D.............................. 26 2.3 Modeling Camel using Dust3D..................................... 26 2.4 Modeling Horse using Dust3D...................................... 27 3 For Developers 29 3.1 Building Dust3D............................................. 29 3.2 Write a 3D modeling software from scratch............................... 32 4 Indices and tables 41 i ii CHAPTER 1 Getting Started 1.1 Download and Install Dust3D • For Windows (64 Bit): https://github.com/huxingyi/dust3d/releases/download/1.0.0-rc.6/dust3d-1.0.0-rc.6.zip No need to install, unzip and run the exe. • For Windows (32 Bit): https://github.com/huxingyi/dust3d/releases/download/1.0.0-rc.6/dust3d-1.0.0-rc.6-x86.zip No need to install, unzip and run the exe. • For Mac OS X: https://github.com/huxingyi/dust3d/releases/download/1.0.0-rc.6/dust3d-1.0.0-rc.6.dmg If “The following disk images couldn’t be opened” popped up, that means the downloaded file was broken, please retry. If “can’t be opened because its integrity cannot be verified” popped up, please follow ni_kush’s answer in this reddit post.
    [Show full text]
  • Latest Ubuntu LTS Or Newer, Arch, Debian Testing, SUSE Tumbleweed, Or Similar
    Gaphor Documentation Release 2.6.1 Arjan J. Molenaar Sep 29, 2021 INSTALLATION 1 Gaphor on Linux 3 2 Gaphor on macOS 7 3 Gaphor on Windows 9 4 Framework 15 5 Service Oriented Architecture 17 6 Event System 21 7 Modeling Languages 23 8 Style Sheets 27 9 Transaction support 33 10 Items and Elements 37 11 Modeling Language Core 39 12 Unified Modeling Language 41 13 Systems Modeling Language 47 14 Risk Analysis and Assessment Modeling Language 51 15 C4 Model 59 16 Saving and Loading models 61 17 Undo Manager 63 18 UML and SysML Data Model 65 19 Stereotypes 67 20 Data Model 69 21 Connection Protocol 71 22 External links 73 i Index 75 ii Gaphor Documentation, Release 2.6.1 Gaphor is a UML and SysML modeling application written in Python. It is designed to be easy to use, while still being powerful. Gaphor implements a fully-compliant UML 2 data model, so it is much more than a picture drawing tool. You can use Gaphor to quickly visualize different aspects of a system as well as create complete, highly complex models. This documentation is aimed at those who would be interested in making contributions to Gaphor. For download instructions, tutorials and how-to’s, please visit the Gaphor Website. If you’re into writing plug-ins for Gaphor you should have a look at our fabulous Hello world plug-in. INSTALLATION 1 Gaphor Documentation, Release 2.6.1 2 INSTALLATION CHAPTER ONE GAPHOR ON LINUX 1.1 Development Environment To set up a development environment with Linux, you first need a fairly new Linux distribution version.
    [Show full text]
  • Future of the Software Packaging
    Future of the software packaging Tomáš Chvátal [email protected] SUSE/L3 - Packaging 2018/10/06 Introduction Who Who the hell is this sod presenting here? • SUSE employee working as a teamlead of Packaging team • One of the people that created Tumbleweed rolling release distro • Formerly Gentoo developer and Council member 3 of 33 What • First we will dig up some brief history of the packaging • Then we will check up on why do we even bother with the work • And at the end we will make fun of everyone else, or should we? 4 of 33 Why bother What actually is packaging • Postal services, software? It does not matter. • The core goal is to get something that wrapped from point A to B • If we focus on offline Amazon usecase the software does all the steps: ◦ Get request for delivery of goods ◦ Gather the goods and put them to box ◦ Send the box to delivery center (here we diverge with reality as we can deliver 1 resource endlessly) ◦ Send the delivery to destination ◦ Customer gets the goods and can enjoy his new bath duck 6 of 33 Packages on Linux • Most distributions are leveraging some package/software management ◦ Debian/Ubuntu (apt + dpkg) ◦ Arch linux (pacman) ◦ Gentoo linux (portage) ◦ rpm based distributions (rpm + zypper/yum/dnf) • The same applies for phones with Android/iOS (F-Droid, etc.) • Windows provide the application store in Windows 10 and newer 7 of 33 Languages Many popular languages have their own package system/registry • CPAN (perl) • pypi (python) • cabal (haskell) • npm (JS) • … 8 of 33 Why do we need packages at all?
    [Show full text]
  • Package Management and Distribution in a Cloud World
    Package Management and Distribution in a Cloud World Jose Miguel Parrella About me • Jose Miguel Parrella – GitHub: @bureado • Principal Program Manager, Office of the CTO, Microsoft Azure • Linux and open source enthusiast for 15+ years • Debian Developer, career distro-builder Package management in open source: always changing • 15 years ago: APT and RPM • Programming languages: from CPAN and PyPI to NPM and Golang packages Ecosystem Debian Upstream As a % Ruby 1100 9300 11.83% • Next-generation package Perl 3700 31000 11.94% management: Flatpak, Snaps, Nix, Python 3700 118000 3.14% etc. Node.js 1300 350000 0.37% • Container image specification & All-up libs 30K 2.8M 1.07% hub/store workflow Source: libraries.io and APT lists • Use cases where provenance is controlled by final distributor (e.g., embedded) It’s getting busy out there… Why is this challenging now? • Most IT Professionals working with Linux and open source technologies are not using modern package managers (or containers!) – A significant portion of the Enterprise IT budget depends on a historical decision: APT or RPM • The general community sentiment (sysadmin, DevOps, SRE, etc.) on this evolving technical story is skeptical Why do these technologies exist? We don’t know • Push the packaging responsibility upstream? • Be able to distribute non-free software more effectively and/or monetize? • Provide additional container and application security capabilities? • Reduce the size of a Linux distribution? • Make it easier to package for Linux by removing dependency tracking?
    [Show full text]
  • Dokumentációdokumentáció
    dokumentációdokumentáció Szabadulj meg végre a Windows-tól! Megmutatjuk, hogyan térjünk át blackPanther OS-re. Szabadon terjeszthető a Creative Commons BY-NC-ND 3.0 Licenc feltételeivel DokumentációDokumentáció Hogyan térjünk át blackPanther OS-re más operációs rendszerekről. Hogyan kell használni. Mit merre találunk. Mit, hogy kell érteni és értelmezni! NegyedikNegyedik kiadáskiadás Szerző : Barcza Károly A blackPanther név semmilyen módon nem kapcsolódik faji vagy politikai nézetekhez! Hivatalos weboldalaink: www.blackpantheros.eu – www.blackpanther.hu Youtube csatorna: youtube.com/c/blackPantherEurope Facebook márkaoldal: facebook.com/blackPantherOS.Eu Twitter olddal: twitter.com/blackPantherOS Közösségi weboldal: blackpantheroshogyan.blogspot.com Felhasználói csoport a Facebook-on : facebook.com/groups/blackPantherOS 2018 (v0.7) Alkotók: Barcza Károly [email protected] LibreOfce Angol fordítás és Egyéb javítások korrigációk: korrigációk: korrigációk: Szlávy Anna Czeper-Tóth Gábor Molnár Péter [email protected] Lektorálta: Molnár Péter informatika tanár [email protected] A korábbi kiadáson a legtöbb munkát ők végezték: A korábbi változat segédszerzője: Kretz Ferenc (kregist) [email protected] Korrektor: Kovács Zsolt (kovi) [email protected] E dokumentumot bármilyen formában, részben, vagy teljes egészében sokszorosítani, rögzíteni, vagy bármilyen más módon hasznosítani a szerzők írásbeli engedélye nélkül tilos ! blackPanther OS dokumentáció AjánlásAjánlás A dokumentációt azoknak ajánlanám elsősorban, akik
    [Show full text]
  • Practical Linux Forensics by Bruce Nikkel! As a Prepublication Title, This Book May Be Incom- Plete and Some Chapters May Not Have Been Proofread
    P R A C T I C A L LINUX FORENSICS A GUIDE FOR DIGITAL INVESTIGATORS BRUCE NIKKEL EARLY ACCESS NO STARCH PRESS EARLY ACCESS PROGRAM: FEEDBACK WELCOME! Welcome to the Early Access edition of the as yet unpublished Practical Linux Forensics by Bruce Nikkel! As a prepublication title, this book may be incom- plete and some chapters may not have been proofread. Our goal is always to make the best books possible, and we look forward to hearing your thoughts. If you have any comments or questions, email us at [email protected]. If you have specific feedback for us, please include the page number, book title, and edition date in your note, and we’ll be sure to review it. We appreciate your help and support! We’ll email you as new chapters become available. In the meantime, enjoy! PR CA T IC A L L INU X FOR E N SI C S BRUCE N IK KE L Early Access edition, 6/18/21 Copyright © 2021 by Bruce Nikkel. ISBN-13: 978-1-7185-0196-6 (print) ISBN-13: 978-1-7185-0197-3 (ebook) Publisher: William Pollock Production Manager: Rachel Monaghan Production Editor: Miles Bond Developmental Editor: Jill Franklin Cover Illustrator: James L. Barry Technical Reviewer: Don Frick Copyeditor: George Hale No Starch Press and the No Starch Press logo are registered trademarks of No Starch Press, Inc. Other product and company names mentioned herein may be the trademarks of their respective owners. Rather than use a trademark symbol with every occurrence of a trade- marked name, we are using the names only in an editorial fashion and to the benefit of the trademark owner, with no intention of infringement of the trademark.
    [Show full text]