--- - block: - name: Add the cran repository key apt_key: id={{ r_cran_repo_apt_key }} keyserver=keyserver.ubuntu.com state=present tags: [ 'r_software', 'r_repo', 'r_repo_key' ] - name: Add the CRAN repository apt_repository: repo='deb {{ r_cran_repo_url }}' state=present update_cache=yes when: r_install_cran_repo tags: [ 'r_software', 'r_repo' ] - block: - name: Remove the CRAN repository apt_repository: repo='deb {{ r_cran_repo_url }}' state=absent update_cache=yes when: not r_install_cran_repo tags: [ 'r_software', 'r_repo' ] - block: - name: Remove the hold state from the debian R packages shell: apt-mark unhold {{ item }} with_items: '{{ r_base_packages_hold_list | default([]) }}' when: r_base_packages_hold_list is defined ignore_errors: True tags: [ 'r_software', 'r_pkg', 'r_pkg_hold' ] - name: Install the R base packages. apt: pkg={{ r_base_packages_list }} state={{ r_packages_main_state }} update_cache=yes cache_valid_time=3600 - name: When we install specific R deb packages, put them on hold shell: apt-mark hold {{ item }} with_items: '{{ r_base_packages_hold_list| default([]) }}' when: r_base_specific_version ignore_errors: True tags: [ 'r_software', 'r_pkg', 'r_pkg_hold' ] - name: Install the R additional modules from the deb repo apt: pkg={{ r_plugins_packages_list | default([]) }} state={{ r_packages_state }} force=yes when: r_plugins_from_deb - name: Install some additional repositories. They provide dependencies for some R packages apt_repository: repo={{ item }} state=present update_cache=yes with_items: '{{ r_apt_additional_repos }}' when: ansible_distribution_version is version_compare('18.04', '<') tags: [ 'r_software', 'r_apt_repo', 'r_deps' ] - name: Install some packages needed by R packages when installed from source apt: pkg={{ r_distribution_required_packages | default([]) }} state={{ r_packages_state }} update_cache=yes force=yes cache_valid_time=3600 tags: [ 'r_software', 'r_pkg', 'r_deps' ] tags: [ 'r_software', 'r_pkg' ]