forked from simonsj/fdupes-jody
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathINSTALL
86 lines (67 loc) · 4.19 KB
/
INSTALL
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
Installing jdupes
-----------------------------------------------------------------------------
To install the program with the default options and flags, just issue the
following commands (note that btrfs support is off by default):
make
su root
make install
This installs all jdupes files under /usr/local by default. You may change this
to a different location by editing the Makefile or specifying a PREFIX on the
command line: make PREFIX=/usr install
On Windows, you need to use MSYS2 with MinGW-w64 installed. Use this guide to
install the build environment:
https://stackoverflow.com/a/30071634/1906641
Running "make" as usual under the MSYS2 mingw32/mingw64 terminal will build a
Windows binary for the bitness of the terminal you're using. The Makefile will
detect a Windows environment and automatically make the needed build changes.
Various build options are available and can be turned on at compile time by
setting CFLAGS_EXTRA or by passing it to 'make':
make CFLAGS_EXTRA=-DYOUR_OPTION
make CFLAGS_EXTRA='-DYOUR_OPTION_ONE -DYOUR_OPTION_TWO'
This is a list of options that can be "turned on" this way:
OMIT_GETOPT_LONG Do not use getopt_long() C library call
ON_WINDOWS Modify code to compile with MinGW on Windows
NO_WINDOWS Disable Windows MinGW special cases (mainly for Cygwin)
NO_PERMS Disable permission options and code
NO_HARDLINKS Disable hard linking options and code
NO_SYMLINKS Disable symbolic linking options and code
NO_USER_ORDER Disable -I/-O options and code
NO_MTIME Disable all modify time features and code
NO_ATIME Disable all access time features and code
Certain options can be turned on by setting a variable passed to make instead
of using CFLAGS_EXTRA, i.e. 'make DEBUG=1':
DEBUG Turn on algorithm statistic reporting with '-D'
LOUD '-@' for low-level debugging; enables DEBUG
ENABLE_DEDUPE Enable '-B/--dedupe' deduplication features
STATIC_DEDUPE_H Build dedupe support with included minimal header file
LOW_MEMORY Build for extremely low-RAM environments (CAUTION!)
NO_UNICODE [Windows only] disable all Unicode support
The LOW_MEMORY option tweaks various knobs in the program to lower total
memory usage. It also disables some features to reduce the size of certain
data structures. The improvements in memory usage are not very large, but if
you're running in a very RAM-limited environment or have a CPU with very small
caches it may be a good choice. This is primarily meant for use in embedded
systems and should not be used unless you know what you are doing.
A test directory is included so that you may familiarize yourself with the way
jdupes operates. You may test the program before installing it by issuing a
command such as "./jdupes testdir" or "./jdupes -r testdir", just to name a
couple of examples. See the README for information on valid options.
A comparison shell script is also included. It will run your natively
installed 'jdupes' or 'jdupes' with the directories and extra options you
specify and compare the run times and output a 'diff' of the two program
outputs. Unless the core algorithm or sort behavior is changed, both programs
should produce identical outputs and the 'diff' output shouldn't appear at
all. To use it, type:
./compare_jdupes.sh [options]
There are some package generators included as make targets:
chrootpackage Uses chroots under /chroot to build Linux packages
package Makes auto-detected macOS/Linux/Windows packages
Windows builds do not support dedupe or symbolic links. Dedupe would only work
in ReFS which was removed from all non-enterprise Windows 10 editions, so it
will likely never be supported for Windows builds of jdupes. Symbolic linking
is supported on Windows, but on all versions of Windows before Windows 10 1703
(the "Creators Update"), creating symlinks required administrative escalation.
Symlinks can be dangerous on Windows because most Windows software is symlink-
unaware. Support can be added in the future, but it is not a priority. If you
are interested in seeing symlink support added, leave a +1 comment here:
https://github.com/jbruchon/jdupes/issues/194