Coder Social home page Coder Social logo

tprasadtp / ubuntu-post-install Goto Github PK

View Code? Open in Web Editor NEW
81.0 5.0 32.0 31.2 MB

Effortless, Flexible and Simple Post Install Script for Ubuntu, Linux Mint, Debian & their derivatives

Home Page: https://ae.prasadt.com

License: GNU General Public License v3.0

Shell 99.52% Dockerfile 0.48%
post-installation mint-post-install fresh-installs setup-script ubuntu linux-mint debian-post-install ubuntu-post-install ubuntu-installation

ubuntu-post-install's People

Contributors

andrewrutherfoord avatar baruchiro avatar dependabot-preview[bot] avatar islamalam avatar ngirard avatar tprasadtp avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

ubuntu-post-install's Issues

Fails to parse config from github gists

As described, when used with gists, it fails to parse options and reverts to defaults. Probably because script uses two spaces for indentation and assumes so.
Temporary solution, use default yaml from config folder as template and edit it to your requirements. Don't copy paste it to gist. It will fail. Use -Y -C config.yaml option.

Doesn't work on Linux mint

➜ Initialization & checks 
  • Permission checks 
  • OK! Running as root 
  • Config file            : LOCAL 
  • Checking dependencies 
  • Hostname               : user-Book 
  • OS                     : Linux Mint 21.2 
  • Distribution           : Linux Mint 
  • Release                : victoria 
  • Architecture           : amd64 
  • Version                : 9.2.0 
  • Checking connectivity 
  • Connected! 
  • Checking configuration 
➜ Running environment checks 
  • KVM              : false 
  • HYPERV           : false 
  • WSL              : false 
  • DOCKER           : false 
  • PODMAN           : false 
  • GH-ACTIONS       : false 
  • AZURE PIPELEINES : false 
  • CI               : false 
➜ Checking for Ubuntu derivates/Debian 
✖ Unknown or unsupported release(victoria) ! 
➜ Cleanup and Exit 

Custom categories in apt (and all)

Why is this list of categories is strict?

What about adding custom cateogry?

#--------------------------------------------------------------------------------
# APT Lists
#--------------------------------------------------------------------------------
# There are Seven lists under key config.install.apt.[mentioned from 1-7]
# 1. administration : Contains Administrative packages
# 2. security : contains Security related tools and packages
# 3. productivity : Office tools, writing tools, LateX, document tools and other
# productivity tools, Email clients, browsers, IM clients etc.
# : Example : LateX, TeXStudio, Libre office, pandoc empathy, Thunderbird
# 4. Multimedia : Multimedia tools like media players, audio converters and playes etc.
# 5. development : IDEs [Spyder, Jetbeans etc], languages [go, python, ruby, rust, java etc],
# : Containers [docker lxc rkt etc], Python libraries, compilers [gcc, clang]
# : SDKs [AWS SDK, Coogle Cloud SDK, open-jdk, Tensor Flow], headers
# : and libraries[ocl-icd-dev],
# : Anything related to development and *-dev or *-devl packages.
# 6. other : Everything which doesnot fit in the above categories.
# : Themes, Tools, Utilities like htop etc.
# 7. External : Any packages which are provided by ppas, or repositories not present in
# : base *buntu distribution. There's a possibility that the repository might not
# : be added or may be unavailable or offline. So Keeping the list seperate from
# : others packages minimizes errors if there are any.
# This classification is only for ease of use and need not be strictly followed. You can put
# vlc package in 'security', it will still install fine. This classification helps
# while writing configs and editing them. Its advised to follow it if your configs
# tend to get to couple of hundreds of lines. Also YAML file should be a valid YAML.

Find a good YAML schema form

With YAML Schema, it is easy to know which data we can write.

Actually, for JSON Schema there are a lot of auto generator engines for creating a form to build the JSON.

I think if someone knows about a generator for YAML it will be good.

Examples:

You know what? Maybe we can use a JSON builder and convert the output to YAML?

Support custom configs or custom scripts

Hi, one of the features I'm looking for in this context (but after found your project I prefer it even without them), is to also reconfigure my .bashrc changes.

I can list some use cases in ascending order according to complexity:

  • Run custom command. For example, configure my git by git config --global user.name "my name"
  • re-configure my aliases, just for example alias cd=pushd
  • re-configure config file, for example, just download my git config file from remote URL to the right place.
  • Add lines to the .bashrc (or link to these lines in another file), for example, oh-my-zsh configs.

Fails to use list files when run from different folder

/shared/after-effects -s -y
Fails to use the files as the paths are relative to after-effects

[   Installing  ] packages from list :./data/utilities.list:
cat: ./data/utilities.list: No such file or directory
package list to install is empty!!
[   Installing  ] packages from list :./data/security.list:
cat: ./data/security.list: No such file or directory

Error when trying to install vscode with snap

First, I'd like to say that this is a very good project, really help me and saved me a lot of time.
Secondly, I try to install vscode with snap:

    snaps:
      classic:
        - vscode

and an error happened:

[sáb set 28 18:47:09 -03 2019] [     Info      ] Installig Snaps [Classic Packages]
[sáb set 28 18:47:09 -03 2019] [    Snap PKG   ] vscode...
[sáb set 28 18:47:10 -03 2019] [    Snap PKG   ] error: This revision of snap "vscode" was published using classic confinement and thus may perform
[sáb set 28 18:47:10 -03 2019] [    Snap PKG   ]        arbitrary system changes outside of the security sandbox that snaps are usually confined to,
[sáb set 28 18:47:10 -03 2019] [    Snap PKG   ]        which may put your system at risk.
[sáb set 28 18:47:10 -03 2019] [    Snap PKG   ] 
[sáb set 28 18:47:10 -03 2019] [    Snap PKG   ]        If you understand and want to proceed repeat the command including --classic.
[sáb set 28 18:47:10 -03 2019] [     Oh No!    ] Some Error occured while installing .

It seems that the snap option --classic isn't been used to install the app. Is this a bug?

purge is not working as expected?

Hey,

found your cool script in the net, and played around with it in a VM.
I tried to purge the games from your config, but it is not working.

 ~/shared  sudo ./after-effects -c ae.yml -d -A
✈ Initialize & run checks
  ➜ Permission checks
  ✔ Running as root 
  ✦ Using local config file
  ✦ Purge packages is set to true.
  ⚠ No checks are being made on the packages in the list. 
  ⚠ Use carefully!. Purging system packages is stupid idea! 
  ⚠ $bool_purge_pkgs=true  <------ HERE
  ➜ Checking dependencies...
  ✦ Hostname      : osboxes
  ✦ OS            : Ubuntu 20.04 LTS
  ✦ Distro        : Ubuntu
  ✦ Code Name     : bionic
  ✦ Arch          : amd64
  ✦ Version/Number: 6.1.0-RC1/610
  ➜ Check for conflicting apps...
  ✔ No conflicts detected. 
  ➜ Checking connectivity
  ✔ Connected! 
✈ Running environment checks... 
✈ Checking for Ubuntu derivates/Debian 
  ➜ This is a LTS release of Ubuntu
  ✔ Keeping the codename as: bionic. 
  ✔ Applied release specific settings and fixes. 
✈ Check if config is defined 
✈ Checking for updates 
  ✔ Running the latest and greatest! 
  ⚠ $bool_purge_pkgs=true  <------ HERE 
✈ Processing configuration... 
  ✦ Config file - ae.yml
  ➜ Parsing config file 
  ⚠ $bool_purge_pkgs=false  <------ HERE 
✈ Check if autopilot is set/required 
  ✔ Autopilot is ENABLED 
  ⚠ $bool_purge_pkgs=false  <------ HERE 
✖ Purge switch is set to false. Did you pass -d along with the command? 

After processing the config the variable $bool_purge_pkgs was set back to false

At least I've to set

config:
  # Enabled Tasks
  tasks:
    purge: true
  flags:
    purge_enabled: true

to make it working, but according to your documentation

Warning
It is necessary to pass command line argument -d or set config.flags.purge_enabled: true in config.

only one of these is needed. With config.flags.purge_enabled: true the parameter -d has no effect.

Kind regards
Frank

UMASK to avoid problems with APT?

Good day,

I've noticed that you're "setting UMASK to 0022 for the script to avoid APT errors" on line 1418 of the script. Can you please elaborate on the relation between the two? Is this how you deal with packagekitd locking the file /var/lib/apt/lists/lock during apt updates? Why not to disable the apt-daily*** services and then re-enable them when necessary instead?

I'm asking because I'm working on a similar but less sophisticated script myself for Pop!_OS and currently stuck with an apt problem caused by packagekitd, as I described above. To solve it, I simply stop the daemon, which is re-started by apt during the update anyway.

Thank you!

Target Packages is configured multiple times

Do you expect more than one run per machine?

Because for building my config, every new software I want to install, I adding it to the config first, then running the script again.

Now I'm getting a lot of this:

Wed 27 Jan 21:56:58 IST 2021 [EXT] (APT) W: Target Packages (main/binary-amd64/Packages) is configured multiple times in /etc/apt/sources.list:58 and /etc/apt/sources.list.d/github-cli.list:1
Wed 27 Jan 21:56:58 IST 2021 [EXT] (APT) W: Target Packages (main/binary-i386/Packages) is configured multiple times in /etc/apt/sources.list:58 and /etc/apt/sources.list.d/github-cli.list:1
Wed 27 Jan 21:56:58 IST 2021 [EXT] (APT) W: Target Packages (main/binary-all/Packages) is configured multiple times in /etc/apt/sources.list:58 and /etc/apt/sources.list.d/github-cli.list:1

I know this warning. I'm asking if you considering it as a bug or it just not the right using of your script.


BTW, sorry for just opening issues without contributing. We need to be patient, because I almost don't know bash, so I will contribute when I will feel the invest worth the value :-)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.