this post was submitted on 24 Sep 2024
47 points (98.0% liked)

Linux

48452 readers
475 users here now

From Wikipedia, the free encyclopedia

Linux is a family of open source Unix-like operating systems based on the Linux kernel, an operating system kernel first released on September 17, 1991 by Linus Torvalds. Linux is typically packaged in a Linux distribution (or distro for short).

Distributions include the Linux kernel and supporting system software and libraries, many of which are provided by the GNU Project. Many Linux distributions use the word "Linux" in their name, but the Free Software Foundation uses the name GNU/Linux to emphasize the importance of GNU software, causing some controversy.

Rules

Related Communities

Community icon by Alpár-Etele Méder, licensed under CC BY 3.0

founded 5 years ago
MODERATORS
 

Hi all,

I am about to do a bit of a distro hop, and I am looking at Fedora and its spins, after years on Debian / POP.

I am not looking forward to setting it all up again, it's a drag.

I wonder, is there a tool that lets me script installs?

I'll want to check if application exists, and if so, update, otherwise, install. That kind of thing.

Things like:

  • Telegram
  • Joplin
  • Docker
  • Firefox
  • Ungoogle Chromium
  • Sublime Text
  • VSCodium
  • Keepass
  • Thunderbird
  • DBeaver
  • Gimp
  • Inkscape
  • KDENLive
  • Syncthing
  • Steam
  • VLC
  • Localsend
  • Flameshot
  • Element
  • Cherrytree
  • Calibre
  • Anydesk

I show the list, only to give an idea of what might be involved.

I'm new to Fedora, so not sure how it differs beyond the package manager. But, thought I'd ask.

Does such a tool exist, and is it worth my time? I can practice on a VM before trying on the final install/s.

Thank you

you are viewing a single comment's thread
view the rest of the comments
[–] [email protected] 11 points 2 months ago* (last edited 2 months ago) (1 children)

I have a bash script I use to script my Silverblue install. Something like this should work.

# space-separated list of packages to install
S_RPM_PACKAGES_TO_INSTALL="pkg1 pkg2 pkg3"

# function to install the packages
dnf_install () {
	sudo dnf install -y $1
}

# call to function, passing the list
dnf_install "$S_RPM_PACKAGES_TO_INSTALL"

I have it set up this way so that I just have a bunch of bash variables describing the stuff I want to install all at the top of the file, but the function definitions and calls lower down since I don't need to see them.

It also does other things like removes packages from the system, removes some preinstalled flatpaks, installs flatpaks from Fedora Flatpaks / Flathub / gnome-nightly, and sets up gnome through a list gsettings commands.

As I use my system, I add new apps to the list I want next time I install and remove apps I don't use.

[–] [email protected] 2 points 2 months ago (1 children)

I love this, I will update the script I've setup to mirror your idea. Nice and clean.

I wonder if you can help at all? The only app that fails install is Anydesk. I have to do the following:

# Anydesk
sudo tee /etc/yum.repos.d/anydesk.repo<<EOF
[anydesk]
name=AnyDesk Fedora Linux
baseurl=http://rpm.anydesk.com/fedora/x86_64/
gpgcheck=1
repo_gpgcheck=1
gpgkey=https://keys.anydesk.com/repos/RPM-GPG-KEY
EOF

sudo dnf install anydesk -y

But it gives an error, saying :

[anydesk]
name=AnyDesk Fedora Linux
baseurl=http://rpm.anydesk.com/fedora/x86_64/
gpgcheck=1
repo_gpgcheck=1
gpgkey=https://keys.anydesk.com/repos/RPM-GPG-KEY
AnyDesk Fedora Linux                                                                                                                                                         397  B/s | 488  B     00:01    
AnyDesk Fedora Linux                                                                                                                                                         1.8 kB/s | 1.7 kB     00:00    
Importing GPG key 0xCDFFDE29:
 Userid     : "philandro Software GmbH <[email protected]>"
 Fingerprint: D563 11E5 FF3B 6F39 D5A1 6ABE 18DF 3741 CDFF DE29
 From       : https://keys.anydesk.com/repos/RPM-GPG-KEY
AnyDesk Fedora Linux                                                                                                                                                         796  B/s | 1.2 kB     00:01    
Error: 
 Problem: conflicting requests
  - nothing provides libgtkglext-x11-1_0-0 needed by anydesk-6.3.2-1.x86_64 from anydesk
(try to add '--skip-broken' to skip uninstallable packages)

Is there a special way to add that kind of command to a bash script? All good apart from that though.

[–] [email protected] 1 points 2 months ago (1 children)

I think that’s just a dependency issue unrelated to the script.

[–] [email protected] 1 points 2 months ago* (last edited 2 months ago)

ok, thank you. I'll address that, in that case. Thanks again!

EDIT, and resolved. Thanks again.