I tried to compile and install mariadb in alpine, because it was used in docker, so I wanted to take up less space after the compilation was successful.
I used the -dcmake_build_type =MinSizeRel option to minimize the installation. But the mysql-test directory still takes up a lot of space.
I tried using -dwith_unit_tests =OFF and -dconc_with_unit_tests =OFF to disable mysql-test installation, but they didn't work. I haven't found any other relevant options, similar to INSTALL_MYSQLTESTDIR="" in mysql.
How can I disable mysql-test installation?
mysql installation options is this:
cmake . \
-DCMAKE_BUILD_TYPE=MinSizeRel \
-DWITH_UNIT_TESTS=OFF \
-DCONC_WITH_UNIT_TESTS=OFF \
-DWITH_MARIABACKUP=OFF \
-DENABLED_LOCAL_INFILE=ON \
-DWITHOUT_TOKUDB=1; \
which means, we are basically deleting them all, if we don't want them.
So if there's some easier way, I'd like to know that too
Michal Schorm
added a comment - True that, in Fedora, we use:
-DINSTALL_MYSQLTESTDIR=share /mysql-test
-DWITH_UNIT_TESTS=%{?with_test:ON}%{!?with_test:NO}
% if %{without test }
% if %{with embedded}
rm %{buildroot}%{_bindir}/{mysqltest_embedded,mysql_client_test_embedded}
rm %{buildroot}%{_mandir} /man1/ {mysqltest_embedded,mysql_client_test_embedded}.1*
%endif # embedded
rm %{buildroot}%{_bindir}/{mysql_client_test,my_safe_process,mysqltest}
rm %{buildroot}%{_mandir} /man1/ {mysql_client_test,my_safe_process,mysqltest}.1*
rm %{buildroot}%{_mandir} /man1/ {mysql- test -run,mysql-stress- test }.pl.1*
rm -r %{buildroot}%{_datadir} /mysql-test
%endif # test
which means, we are basically deleting them all, if we don't want them.
So if there's some easier way, I'd like to know that too
@Michal Schorm
if you use mysql,you can use -DINSTALL_MYSQLTESTDIR="" to disable mysql-test installation. but mariadb don't has this option. now,I can only delete them manually.Thanks for you help.
yinfuyuan
added a comment - @Michal Schorm
if you use mysql,you can use -DINSTALL_MYSQLTESTDIR="" to disable mysql-test installation. but mariadb don't has this option. now,I can only delete them manually.Thanks for you help.
yinfuyuan We do have INSTALL_MYSQLTESTDIR option , and it does work the same as in MySQL. you do not need to pass that as -DINSTALL_MYSQLTESTDIR="" . You can pass it as -DMYSQLTESTDIR= elenst fyi
Vladislav Vaintroub
added a comment - - edited yinfuyuan We do have INSTALL_MYSQLTESTDIR option , and it does work the same as in MySQL. you do not need to pass that as -DINSTALL_MYSQLTESTDIR="" . You can pass it as -DMYSQLTESTDIR=
elenst fyi
Right, sorry for the confusion. In my comment I meant that we apparently don't have a way to avoid installing mysql-test, not that we don't have the option. I didn't know that it could work this way, happy to be wrong.
Elena Stepanova
added a comment - Right, sorry for the confusion. In my comment I meant that we apparently don't have a way to avoid installing mysql-test, not that we don't have the option. I didn't know that it could work this way, happy to be wrong.
yinfuyuan
added a comment - @Vladislav Vaintroub
I've tried -DINSTALL_MYSQLTESTDIR="" and -DMYSQLTESTDIR= , but they don't work. The following can see my compilation details.
https://github.com/yinfuyuan/docker-mariadb/blob/develop/services/mariadb/10.2/alpine/Dockerfile
Is that have a problem? .Thanks for you help.
and mysql-test is not in the package
your dockerfile das have a problem indeed, because it does not use correct option. How do I know correct option? I grep CMakeCache.txt, and I look into cmake/install_macros.cmake to see the effect of INSTALL_MYSQLTESTDIR.
Apparently, this line https://github.com/MariaDB/server/blob/10.2/cmake/install_macros.cmake#L357 does the magic
Vladislav Vaintroub
added a comment - - edited it works for me, and should for you, too
cmake . -DINSTALL_MYSQLTESTDIR=
and mysql-test is not in the package
your dockerfile das have a problem indeed, because it does not use correct option. How do I know correct option? I grep CMakeCache.txt, and I look into cmake/install_macros.cmake to see the effect of INSTALL_MYSQLTESTDIR.
Apparently, this line https://github.com/MariaDB/server/blob/10.2/cmake/install_macros.cmake#L357 does the magic
Now. I used it correctly, it works well.
Thank you very mach for you help.
yinfuyuan
added a comment - @Vladislav Vaintroub
Yes.
I know cmake ../server -LH can be display all cmake configuration options for MariaDB from
https://mariadb.com/kb/en/library/generic-build-instructions
but the -DINSTALL_MYSQLTESTDIR option is not available,so I didn't try it.
Now. I used it correctly, it works well.
Thank you very mach for you help.
"Non-advanced" is important part. INSTALL_XXX variables are marked as advanced.
but you can cat or vi CMakeCache.txt to see all variables.
Vladislav Vaintroub
added a comment - Our documentation a little simplified
https://cmake.org/cmake/help/v3.10/manual/cmake.1.html contains accurate description of what cmake -L [A] [H] does .
List non-advanced cached variables.
"Non-advanced" is important part. INSTALL_XXX variables are marked as advanced.
but you can cat or vi CMakeCache.txt to see all variables.
True that, in Fedora, we use:
-DWITH_UNIT_TESTS=%{?with_test:ON}%{!?with_test:NO}
which means, we are basically deleting them all, if we don't want them.
So if there's some easier way, I'd like to know that too