The install-mimic
utility copies the specified files to the specified
destination (file or directory) similarly to install(1)
, but it preserves
the ownership and access mode of the destination files. This is useful when
updating files that have already been installed with locally modified copies
that may be owned by the current user and not by the desired owner of the
destination file (e.g. root
).
Overwrite a system file with a local copy:
install-mimic ./install-mimic.pl /usr/bin/install-mimic
Overwrite several files with local copies with the same name:
install-mimic cinder/*.py /usr/lib/python2.7/dist-packages/cinder/
Install a new file similar to a system file:
install-mimic -v -r /usr/bin/install-mimic install-none /usr/bin/
The source of the install-mimic
utility may be obtained at
its devel.ringlet.net homepage. It is developed in
a GitHub Git repository.
- Add the
--help
and--version
long options. - Add the
--features
long option.
- In testing, get the file group from a new file created in the test directory to fix the case of enforced setgid directories.
- Create the test temporary directory in the system's temporary path to avoid future weird situations like the setgid case.
- Add a Rust implementation.
- Fix a memory allocation bug in the C implementation leading to destination filename corruption when the target specified on the command line is a directory.
- Explicitly test the Perl 5 implementation in the "test" target.
- Add tests for the -r reffile and -v command-line options.
- Let the tests continue if an expected file was not created.
- Add a C implementation.
- Add the internal "dist" target for creating distribution tarballs.
- Add a test suite.
- Reorder the functions a bit to avoid prototype declarations.
- Make the usage() function fatal by default.
- Add a Travis CI configuration file and a cpanfile.
- Move development from GitLab to GitHub.
- Switch the homepage URL to HTTPS.
- First public release.
Peter Pentchev [email protected]