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

  • exuA
    link
    fedilink
    English
    arrow-up
    8
    ·
    edit-2
    3 months ago

    Just installing applications is pretty easy though.

    ---
    - hosts: localhost
      become: yes
      tasks:
        - name: Install required software
          dnf:
            state: latest
            name:
              - firefox
              - telegram
              - calibre
    

    ansible-playbook install.yml

    Something like that (untested)

    • timbuck2themoon@sh.itjust.works
      link
      fedilink
      English
      arrow-up
      1
      ·
      edit-2
      3 months ago

      I distinctly remember yum/dnf should be using a loop. Forget why but it’s recommended. Here’s a snippet from my playbook. Simply make the vars as you need and run.

        - name: Install flathub as remote
          ansible.builtin.shell:
            cmd: flatpak remote-add --if-not-exists flathub https://dl.flathub.org/repo/flathub.flatpakrepo
          tags:
            - apps
      
        - name: Install flatpak apps
          community.general.flatpak:
            name: "{{ item }}"
            state: present
          loop: "{{ flatpaks }}"
          tags:
            - apps
      
        - name: Remove some default unused packages
          ansible.builtin.dnf:
            name: "{{ item }}"
            state: absent
            update_cache: no
          loop: "{{ remove }}"
          ignore_errors: true
          tags:
            - apps
      
        - name: Install our packages
          ansible.builtin.dnf:
            name: "{{ item }}"
            state: present
            update_cache: yes
          loop: "{{ rpms }}"
          ignore_errors: true
          tags:
            - apps```
      
      On mobile. Apologies if formatting is off.