Prosty skrypt tworzący “bazę aplikacji” zainstalowanych przez użytkownika

Nie raz zdarzyło mi się, że kiedyś coś zainstalowałem a po padaczce dysku lub reinstalacji nie pamiętałem co dokładnie miałem. Oczywiście są różne sposoby na to aby wyłuskiwać nazwy aplikacji z pomiędzy obecnie już zainstalowanych np za pomocą dpkg i grepa czy awk ale w moim przypadku lenistwo wzięło górę i postanowiłem zrobić coś prostego co za mnie będzie tworzyło na bieżąco listę takich aplikacji.

Sposób jest dość prosty ale wymaga zapamiętania jednego polecenia. Jakiego? To już zależy od tego jak sobie nazwiemy funkcję 🙂

Cały pomysł polega na zrobieniu prostej nakładki na wybrany menadżer aplikacji. U mnie ulubionym menadżerem jest aptitude.

Aby zainstalować i zapisać aplikację do pliku wystarczy wydać polecenie aptitude-install z parametrami, którymi są nazwy paczek.

function aptitude-install()
{
    packages="$@";

    for package in ${packages};
    do
        echo "${package}" >> ~/.packages.txt
    done

    sudo aptitude install ${packages}
}

Funkcję należy dodać do pliku ~/.bashrc i po ponownym zalogowaniu (lub wydaniu polecenia: source ~/.bashrc) będzie można jej używać. Po pewnym czasie w pliku .packages.txt zbierze się coraz to więcej aplikacji jakie instalujemy.

Przykład użycia funkcji:

install mc software-properties-common apt-transport-https

Plusy:

  • nie trzeba pamiętać jakie aplikacje się instalowało
  • po małej zmianie funkcji można po instalacji dodawać informacje do pliku i od razu commitować i pushować na serwer z gitlabem do konkretnego brancha.
  • proste rozwiązanie (chociaż nie idealne)

Minusy:

  • praktycznie brak detekcji błędów (wymaga to poprawy)
  • napisane w Bashu (na przyszłość będzie to zrobione w Pythonie)
  • brak funkcji która w przypadku odinstalowania kasuje wpisy z pliku z paczkami
  • w przypadku wielokrotnego użycia funkcji z tą sama nazwą paczki – nazwa paczki zostanie wielokrotnie dodana do pliku

Oczywiście wszelkie minusy i plusy poprawię ale oczywiście nie wiem kiedy (czasami prowizorki działają dobrze latami).

Może komuś jeszcze się przyda 🙂

Leave a Reply

Your email address will not be published. Required fields are marked *