more informative error messages in python-modules-installer.sh
Costa Tsaousis (ktsaou) committed
Jul 2, 2016 at 17:24 UTC
76162e300a56bc06f7c3da1812f00814ef4f37ce
2 files changed
+29
-9
python.d/Makefile.am
+3
@@ -1,4 +1,7 @@
1
MAINTAINERCLEANFILES= $(srcdir)/Makefile.in
2
+CLEANFILES = \
3
+ python-modules-installer.sh \
4
+ $(NULL)
5
6
include $(top_srcdir)/build/subst.inc
7
python.d/python-modules-installer.sh.in
+26
-9
@@ -30,6 +30,7 @@ do
30
31
-h|--help)
32
echo "${0} [--dir netdata-python.d-path] [--system]"
33
+ echo "Please make sure you have installed packages: python-pip (or python3-pip) python-dev libyaml-dev libmysqlclient-dev"
34
exit 0
35
;;
36
@@ -56,14 +57,16 @@ then
57
pv=3
58
pip="$(which pip3 2>/dev/null)"
59
else
59
- echo >&2 "Cannot detect python version"
60
+ echo >&2 "Cannot detect python version. Is python installed?"
61
exit 1
62
fi
63
64
[ -z "${pip}" ] && pip="$(which pip 2>/dev/null)"
65
if [ -z "${pip}" ]
66
then
66
- echo >&2 "pip command is required to install python v${pv} modules"
67
+ echo >&2 "pip command is required to install python v${pv} modules."
68
+ [ "${pv}" = "2" ] && echo >&2 "Please install python-pip."
69
+ [ "${pv}" = "3" ] && echo >&2 "Please install python3-pip."
70
exit 1
71
fi
72
@@ -83,7 +86,8 @@ failed=""
86
installed=""
87
errors=0
88
pip_install() {
86
- local ret x
89
+ local ret x msg="${1}"
90
+ shift
91
92
echo >&2
93
echo >&2
@@ -102,16 +106,24 @@ pip_install() {
106
ret=$?
107
fi
108
[ ${ret} -eq 0 ] && break
105
- echo >&2 "failed to install: ${x}"
109
+ echo >&2 "failed to install: ${x}. ${msg}"
110
done
111
112
if [ ${ret} -ne 0 ]
113
then
110
- echo >&2 "ERROR: could not install any of: ${*}"
114
+ echo >&2
115
+ echo >&2
116
+ echo >&2 "FAILED: could not install any of: ${*}. ${msg}"
117
+ echo >&2
118
+ echo >&2
119
errors=$(( errors + 1 ))
120
failed="${failed}|${*}"
121
else
122
+ echo >&2
123
+ echo >&2
124
echo >&2 "SUCCESS: we have: ${x}"
125
+ echo >&2
126
+ echo >&2
127
installed="${installed} ${x}"
128
fi
129
return ${ret}
@@ -119,11 +131,11 @@ pip_install() {
131
132
if [ "${pv}" = "2" ]
133
then
122
- pip_install pyyaml yaml
123
- pip_install mysqlclient mysql-python pymysql
134
+ pip_install "is libyaml-dev and python-dev installed?" pyyaml
135
+ pip_install "is libmysqlclient-dev and python-dev installed?" mysqlclient mysql-python pymysql
136
else
125
- pip_install yaml pyyaml
126
- pip_install mysql-python mysqlclient pymysql
137
+ pip_install "is libyaml-dev and python-dev installed?" pyyaml
138
+ pip_install "is libmysqlclient-dev and python-dev installed?" mysql-python mysqlclient pymysql
139
fi
140
141
echo >&2
@@ -131,6 +143,11 @@ echo >&2
143
if [ ${errors} -ne 0 ]
144
then
145
echo >&2 "Failed to install ${errors} modules: ${failed}"
146
+ echo >&2
147
+ echo >&2 "If you are getting errors during cleanup from pip, there is a known bug"
148
+ echo >&2 "in certain versions of pip that prevents installing packages local to an"
149
+ echo >&2 "application. To install them system-wide please run:"
150
+ echo >&2 "$0 --system"
151
exit 1
152
else
153
echo >&2 "All done. We have: ${installed}"