+1

Your best bet here is to install stuff from non Fedora sources to non-standard paths, such as `/opt`

, which the rpms will *never* write to, and then load them using your environment variables and so on. Faking the complete `texlive`

package is far from trivial. It is perhaps the most complex package in the Fedora repositories at this time: texlive.spec

So, if you want R from Fedora to work, you will have to let `dnf`

install the required dependencies, even if you later use your own installation of texlive instead.

`dnf`

can only find dependencies that are listed in the rpm packages as metadata. You can see what each rpm requires using

```
rpm -qp --requires <complete path to the rpm package>`
```

This only works if you have the package installed, or if you have the `rpm`

file downloaded.

When repositories are created, this information is extracted and included in the metadata for each repository. `dnf`

downloads this and then figures out how to go about setting up a complete *transaction* where all dependencies are satisfied. If they aren’t, it’ll tell you that there are missing requires and so on. You can get this type of information using the `dnf repoquery`

plugin:

```
sudo dnf repoquery --whatprovides <package or some other capability listed as provides in rpm metadata>
```

`R-core`

, for example, requires:

```
$ sudo dnf repoquery --requires R-core
/bin/bash
/bin/sh
cups
gawk
ld-linux-x86-64.so.2()(64bit)
ld-linux-x86-64.so.2(GLIBC_2.2.5)(64bit)
ld-linux.so.2
ld-linux.so.2(GLIBC_2.1)
less
libRblas.so
libRblas.so()(64bit)
libRmath(x86-32) = 3.5.3-1.fc30
libRmath(x86-32) = 3.6.0-1.fc30
libRmath(x86-64) = 3.5.3-1.fc30
libRmath(x86-64) = 3.6.0-1.fc30
libX11.so.6
libX11.so.6()(64bit)
libXmu.so.6
libXmu.so.6()(64bit)
libXt.so.6
libXt.so.6()(64bit)
libbz2.so.1
libbz2.so.1()(64bit)
libc.so.6(GLIBC_2.27)(64bit)
libc.so.6(GLIBC_2.28)
libcairo.so.2
libcairo.so.2()(64bit)
libcurl.so.4
libcurl.so.4()(64bit)
libdl.so.2
libdl.so.2()(64bit)
libdl.so.2(GLIBC_2.0)
libdl.so.2(GLIBC_2.1)
libdl.so.2(GLIBC_2.2.5)(64bit)
libgcc_s.so.1
libgcc_s.so.1()(64bit)
libgcc_s.so.1(GCC_3.3.1)
libgcc_s.so.1(GCC_3.3.1)(64bit)
libgfortran.so.5
libgfortran.so.5()(64bit)
libgfortran.so.5(GFORTRAN_8)
libgfortran.so.5(GFORTRAN_8)(64bit)
libgobject-2.0.so.0
libgobject-2.0.so.0()(64bit)
libgomp.so.1
libgomp.so.1()(64bit)
libgomp.so.1(GOMP_1.0)
libgomp.so.1(GOMP_1.0)(64bit)
libgomp.so.1(GOMP_4.0)
libgomp.so.1(GOMP_4.0)(64bit)
libgomp.so.1(GOMP_4.5)
libgomp.so.1(GOMP_4.5)(64bit)
libgomp.so.1(OMP_1.0)
libgomp.so.1(OMP_1.0)(64bit)
libicui18n.so.63
libicui18n.so.63()(64bit)
libicuuc.so.63
libicuuc.so.63()(64bit)
libjpeg.so.62
libjpeg.so.62()(64bit)
libjpeg.so.62(LIBJPEG_6.2)
libjpeg.so.62(LIBJPEG_6.2)(64bit)
liblzma.so.5
liblzma.so.5()(64bit)
liblzma.so.5(XZ_5.0)
liblzma.so.5(XZ_5.0)(64bit)
libm.so.6
libm.so.6()(64bit)
libm.so.6(GLIBC_2.0)
libm.so.6(GLIBC_2.1)
libm.so.6(GLIBC_2.2.5)(64bit)
libm.so.6(GLIBC_2.23)
libm.so.6(GLIBC_2.23)(64bit)
libm.so.6(GLIBC_2.27)
libm.so.6(GLIBC_2.27)(64bit)
libm.so.6(GLIBC_2.29)
libm.so.6(GLIBC_2.29)(64bit)
libpango-1.0.so.0
libpango-1.0.so.0()(64bit)
libpangocairo-1.0.so.0
libpangocairo-1.0.so.0()(64bit)
libpcre.so.1
libpcre.so.1()(64bit)
libpng16.so.16
libpng16.so.16()(64bit)
libpng16.so.16(PNG16_0)
libpng16.so.16(PNG16_0)(64bit)
libpthread.so.0
libpthread.so.0()(64bit)
libpthread.so.0(GLIBC_2.0)
libpthread.so.0(GLIBC_2.2)
libpthread.so.0(GLIBC_2.2.5)(64bit)
libreadline.so.8
libreadline.so.8()(64bit)
librt.so.1
librt.so.1()(64bit)
librt.so.1(GLIBC_2.2)
librt.so.1(GLIBC_2.2.5)(64bit)
libtcl8.6.so
libtcl8.6.so()(64bit)
libtiff.so.5
libtiff.so.5()(64bit)
libtiff.so.5(LIBTIFF_4.0)
libtiff.so.5(LIBTIFF_4.0)(64bit)
libtk8.6.so
libtk8.6.so()(64bit)
libtre.so.5
libtre.so.5()(64bit)
libz.so.1
libz.so.1()(64bit)
make
openblas-Rblas
perl-interpreter
redhat-rpm-config
rtld(GNU_HASH)
sed
tex(dvips)
tex(latex)
unzip
vi
xdg-utils
```

It requires `tex(dvips)`

and `tex(latex)`

which are provided by the Fedora texlive installation. Confirmed by looking at the spec file here: Tree - rpms/R - src.fedoraproject.org

You could file a bug asking the maintainer to make these optional dependencies if know that they are not required by R all the time. (I don’t know R well enough to know this.)

(If you can confirm that these are the only tex requirements for the complete R suite, you can write yourself a new fake package and make it provide these two capabilities. I would not suggest it, though, and cannot say exactly how much work it’ll take. I would not expect it to be a trivial undertaking)