Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Почему network-tests2 не хочет устанавливаться, если $INSTALL_DIR уже существует? #16

Open
philip-bl opened this issue Oct 28, 2016 · 5 comments
Assignees

Comments

@philip-bl
Copy link
Contributor

В prepare_install.sh прописано выходить с ошибкой, если директория, указанная в configure --prefix= уже существует. Это сделано с какой-то целью? А то я ведь хочу устанавливать network_tests2 в тот же префикс, куда установлены netcdf и прочие библиотеки. Если скрытого смысла нет, значит буду модифицировать prepare_instal.sh.

@philip-bl
Copy link
Contributor Author

Если фейлить при наличии директории на самом деле не является требованием, необходимым чтобы что-то работало, то я бы исправил это вот так: philip-bl@29e34e4?diff=split и сделал бы пулл реквест куда надо. Но я не знаю всех юз-кейсов network-tests2.

@igormunkin
Copy link
Member

Если директория уже создана, значит там уже лежит какая-то определенная сборка, возможно, сконфигурированная под какую-то определенную задачу. Соответственно, лучше пусть пользователь сам убедится, что эта сборка ему не нужна и снесет ее своими руками, нежели неловким make install. Однако, хотелось бы услышать мнение @asalnikov.

@philip-bl
Copy link
Contributor Author

@igormunkin
@asalnikov мне сказал лично, что так было сделано, потому что у network_tests2 нет нормального деинсталлятора. Он сказал, что make uninstall удаляет всё, и соответственно если в этой папке установлено что-то еще, то оно тоже будет удалено.

По сей причине в созданном мной пулл реквесте следует изменить скрипт деплоя так, чтобы он делал make install для network_tests2 в отдельную папку, и затем копировал из нее все в префикс. Либо можно сделать нормальный make uninstall, но наверное это сложнее. Я наверное модифицирую скрипт деплоя так.

@igormunkin
Copy link
Member

@philip-bl, ок, понял тебя.
make uninstall можно было бы сделать так: положить в ${INSTALL_DIR}/etc маленький Makefile, который будет проходится по директориям, которые аффектит make install, и выпилить оттуда все файлики, которые корневой Makefile туда сам положил (собственно вот структура директории, если подключить все имеющиеся модули)

~/network_tests-2.0.1$ tree
.
├── bin
│   ├── convert_to_netcdf
│   ├── network_test2
│   ├── network_viewer_qt_v2
│   ├── print_from_to
│   └── test_data_clustering
├── config
├── doc
│   └── README
├── etc
├── include
│   ├── data_write_operations.h
│   ├── easy_matrices.h
│   ├── id.h
│   ├── linealge.h
│   ├── line_dynamic_array.cpp
│   ├── line_dynamic_array.h
│   ├── my_malloc.h
│   ├── my_time.h
│   ├── network_speed.h
│   ├── parus_config.h
│   ├── string_id_converters.h
│   ├── str_operation.h
│   └── types.h
├── java
├── lib
│   ├── libparus_network-2.0.1.a
│   └── libparus_network.a -> /home/munkin/network_tests-2.0.1/lib/libparus_network-2.0.1.a
├── var
│   └── spool
│       └── network_tests2
└── version

и если уж быть совсем любезным, то затереть пустые директории, которые мы также должны были создать. Если я ничего не упустил, то это оставит за собой исходную структуру.
Но лучше сделать так, как сказал @asalnikov.

З.Ы. из prepare-install.sh создание каталога java можно удалить, потому что это атавизм, который ваш покорный слуга благополучно забыл выпилить.

@asalnikov
Copy link
Contributor

Наверно и version и список поставленного хорошо положить в var/lib/network_test2

@asalnikov asalnikov assigned igormunkin and unassigned asalnikov Oct 8, 2018
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

3 participants