UC-35 Development of an Automated Software Packaging Solution for Linux
Total Page:16
File Type:pdf, Size:1020Kb
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..