I agree with @cderv - the private-repository solution works well for me. It is not much of a hassle to set up, but it has been well worth the effort.
I use Dirk Eddelbuettel's drat package to manage my private CRAN-like repository, let's call it MYRAN. My company uses Github Enterprise (GHE), so I can serve the CRAN-like repository using GHE's pages service.
On the computers that will use MYRAN, I modify .Rprofile (or Rprofile.site, as needed):
options(
repos = c(
CRAN = "https://cran.rstudio.com/",
MYRAN = "https://pages.github.my-company.com/path/to/repo/"
),
...
)
For more information, have a look at one of the drat vignettes.
One more detail, for those packages that end up on MYRAN, I add a line to the DESCRIPTION file:
Repository: MYRAN
The CRAN maintainers make this modification for us as our packages enter CRAN; I find this is something I need to do as a "MYRAN" maintainer.