I'm new to NetBSD, although often using pkgsrc on ubuntu. I can build and install packages from source without any effect ubuntu's package dependencies.
For example, even if ruby 2.2 is installed by apt-get, I can build and install ruby 2.3 into $HOME/pkg/bin
by pkgsrc. I can use ruby 2.3 without any dependency problems.
This feature have been very helpful to me and that is why I love pkgsrc so far.
Now I installed NetBSD 7.1 to my another PC.
I want to download pkgsrc as my own package manager and want to build packages into my home directory($HOME/pkg/bin
), without any system-wide effect as I'm doing on ubuntu, even though NetBSD itself uses pkgsrc.
When I tried ./bootstrap --unpriviledged
in the home directory, it didn't work.
Before I ask why with detail error messages, let me ask whether NetBSD is designed or considered that downloading and using another pkgsrc for each user without any effect to the system environment.
P.S English is not my native language; please excuse typing, grammar or/and word selecting errors.
UPDATE(2017/04/08)
Thanks to Greg A. Woods's answer, I understood I have to show detail error messages.
At first, I had always installed from binary using pkg_add with root account.
-bash-4.4$ uname -a
NetBSD hello-netbsd 7.1 NetBSD 7.1 (GENERIC.201703111743Z) amd64
-bash-4.4$ pkg_info -a
sudo-1.8.17p1 Allow others to run commands as root
bash-4.4.012 The GNU Bourne Again Shell
cvs-1.12.13nb4 Concurrent Versions System
gcc6-6.3.0 The GNU Compiler Collection (GCC) - 6 Release Series
Then I logined as a non root user, downloaded pkgsrc and bootstrap.
-bash-4.4$ cvs -q -z2 -d anoncvs@anoncvs.NetBSD.org:/cvsroot checkout -r pkgsrc-2017Q1 -P pkgsrc
-bash-4.4$ cd pkgsrc/bootstrap
-bash-4.4$ ./bootstrap --unprivileged
...
...
checking for gcc... no
checking for cc... no
checking for cl.exe... no
configure: error: in `/home/vagrant/pkgsrc/bootstrap/work/bmake':
configure: error: no acceptable C compiler found in $PATH
See `config.log' for more details.
===> exited with status 1
aborted.
I modified $PATH
.
-bash-4.4$ vi ~/.profile
PATH=$HOME/bin:/bin:/sbin:/usr/bin:/usr/sbin:/usr/X11R7/bin:/usr/X11R6/bin:/usr/pkg/bin
PATH=${PATH}:/usr/pkg/sbin:/usr/games:/usr/local/bin:/usr/local/sbin
GCC_PATH=/usr/pkg/gcc6/bin
PATH=${PATH}:${GCC_PATH}
-bash-4.4$ . ~/.profile
-bash-4.4$ echo $PATH
/home/vagrant/bin:/bin:/sbin:/usr/bin:/usr/sbin:/usr/X11R7/bin:/usr/X11R6/bin:/usr/pkg/bin:/usr/pkg/sbin:/usr/games:/usr/local/bin:/usr/local/sbin:/usr/pkg/gcc6/bin
then tried again.
-bash-4.4$ rm -fr work
-bash-4.4$ ./bootstrap --unprivileged
...
...
checking for gcc... gcc
checking for C compiler default output file name...
configure: error: in `/home/vagrant/pkgsrc/bootstrap/work/bmake':
configure: error: C compiler cannot create executables
See `config.log' for more details.
===> exited with status 77
aborted.
config.log was like this:
-bash-4.4$ view work/bmake/config.log
1 This file contains any messages produced by compilers while
2 running configure, to aid debugging if configure makes a mistake.
3
4 It was created by bmake configure 20140214, which was
5 generated by GNU Autoconf 2.64. Invocation command line was
6
7 $ configure --prefix=/home/vagrant/pkgsrc/bootstrap/work --with-default-sys-path=/home/vagrant/pkgsrc/bootstrap/work
/share/mk --with-machine-arch=x86_64
8
9 ## --------- ##
10 ## Platform. ##
11 ## --------- ##
12
13 hostname = hello-netbsd
14 uname -m = amd64
15 uname -r = 7.1
16 uname -s = NetBSD
17 uname -v = NetBSD 7.1 (GENERIC.201703111743Z)
18
19 /usr/bin/uname -p = x86_64
20 /bin/uname -X = unknown
21
22 /bin/arch = unknown
23 /usr/bin/arch -k = unknown
24 /usr/convex/getsysinfo = unknown
25 /usr/bin/hostinfo = unknown
26 /bin/machine = unknown
27 /usr/bin/oslevel = unknown
28 /bin/universe = unknown
29
30 PATH: /home/vagrant/pkg/bin
31 PATH: /home/vagrant/pkg/sbin
32 PATH: .
33 PATH: /home/vagrant/bin
34 PATH: /bin
34 PATH: /bin
35 PATH: /sbin
36 PATH: /usr/bin
37 PATH: /usr/sbin
38 PATH: /usr/X11R7/bin
39 PATH: /usr/X11R6/bin
40 PATH: /usr/pkg/bin
41 PATH: /usr/pkg/sbin
42 PATH: /usr/games
43 PATH: /usr/local/bin
44 PATH: /usr/local/sbin
45 PATH: /usr/pkg/gcc6/bin
46 PATH: /sbin
47 PATH: /usr/sbin
48
49
50 ## ----------- ##
51 ## Core tests. ##
52 ## ----------- ##
53
54 configure:2371: checking for gcc
55 configure:2387: found /usr/pkg/gcc6/bin/gcc
56 configure:2398: result: gcc
57 configure:2627: checking for C compiler version
58 configure:2636: gcc --version >&5
59 gcc (GCC) 6.3.0
60 Copyright (C) 2016 Free Software Foundation, Inc.
61 This is free software; see the source for copying conditions. There is NO
62 warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
63
64 configure:2647: $? = 0
65 configure:2636: gcc -v >&5
66 Using built-in specs.
67 COLLECT_GCC=gcc
68 COLLECT_LTO_WRAPPER=/usr/pkg/gcc6/libexec/gcc/x86_64--netbsd/6.3.0/lto-wrapper
69 Target: x86_64--netbsd
70 Configured with: ../gcc-6.3.0/configure --disable-libstdcxx-pch --enable-nls --with-libiconv-prefix=/usr --enable-__cx
a_atexit --with-gxx-include-dir=/usr/pkg/gcc6/include/c++/ --enable-languages='c obj-c++ objc fortran c++' --enable-shared --e
nable-long-long --with-local-prefix=/usr/pkg/gcc6 --disable-libssp --enable-threads=posix --with-boot-ldflags='-static-libstdc
++ -static-libgcc -Wl,-R/usr/pkg/lib ' --with-arch=nocona --with-tune=nocona --with-fpmath=sse --with-gnu-ld --with-ld=/usr/bi
n/ld --with-gnu-as --with-as=/usr/bin/as --prefix=/usr/pkg/gcc6 --build=x86_64--netbsd --host=x86_64--netbsd --infodir=/usr/pk
g/gcc6/info --mandir=/usr/pkg/gcc6/man
71 Thread model: posix
72 gcc version 6.3.0 (GCC)
73 configure:2647: $? = 0
74 configure:2636: gcc -V >&5
75 gcc: error: unrecognized command line option '-V'
76 gcc: fatal error: no input files
77 compilation terminated.
78 configure:2647: $? = 1
79 configure:2636: gcc -qversion >&5
80 gcc: error: unrecognized command line option '-qversion'; did you mean '--version'?
81 gcc: fatal error: no input files
82 compilation terminated.
83 configure:2647: $? = 1
84 configure:2669: checking for C compiler default output file name
85 configure:2691: gcc conftest.c >&5
86 In file included from conftest.c:9:0:
87 /usr/pkg/gcc6/lib/gcc/x86_64--netbsd/6.3.0/include-fixed/stdio.h:54:23: fatal error: sys/cdefs.h: No such file or dire
ctory
88 #include <sys/cdefs.h>
89 ^
90 compilation terminated.
91 configure:2695: $? = 1
92 configure:2732: result:
93 configure: failed program was:
94 | /* confdefs.h */
95 | #define PACKAGE_NAME "bmake"
96 | #define PACKAGE_TARNAME "bmake"
97 | #define PACKAGE_VERSION "20140214"
98 | #define PACKAGE_STRING "bmake 20140214"
99 | #define PACKAGE_BUGREPORT "sjg@NetBSD.org"
100 | #define PACKAGE_URL ""
101 | /* end confdefs.h. */
102 | #include <stdio.h>
103 | int
104 | main ()
105 | {
106 | FILE *f = fopen ("conftest.out", "w");
107 | return ferror (f) || fclose (f) != 0;
108 |
109 | ;
110 | return 0;
111 | }
112 configure:2738: error: in `/home/vagrant/pkgsrc/bootstrap/work/bmake':
113 configure:: error: C compiler cannot create executables
114 See `config.log' for more details.
115
116 ## ---------------- ##
117 ## Cache variables. ##
118 ## ---------------- ##
119
120 ac_cv_env_CC_set=
121 ac_cv_env_CC_value=
122 ac_cv_env_CFLAGS_set=
123 ac_cv_env_CFLAGS_value=
124 ac_cv_env_CPPFLAGS_set=
125 ac_cv_env_CPPFLAGS_value=
126 ac_cv_env_CPP_set=
127 ac_cv_env_CPP_value=
128 ac_cv_env_LDFLAGS_set=
129 ac_cv_env_LDFLAGS_value=
130 ac_cv_env_LIBS_set=
131 ac_cv_env_LIBS_value=
132 ac_cv_env_build_alias_set=
133 ac_cv_env_build_alias_value=
134 ac_cv_env_host_alias_set=
135 ac_cv_env_host_alias_value=
136 ac_cv_env_target_alias_set=
137 ac_cv_env_target_alias_value=
138 ac_cv_prog_ac_ct_CC=gcc
139
140 ## ----------------- ##
141 ## Output variables. ##
142 ## ----------------- ##
143
144 CC='gcc'
145 CFLAGS=''
146 CPP=''
147 CPPFLAGS=''
148 DEFS=''
149 ECHO_C=''
150 ECHO_N='-n'
151 ECHO_T=''
152 EGREP=''
153 EXEEXT=''
154 GCC=''
155 GREP=''
156 INSTALL=''
157 INSTALL_DATA=''
158 INSTALL_PROGRAM=''
159 INSTALL_SCRIPT=''
160 LDFLAGS=''
161 LIBOBJS=''
162 LIBS=''
163 LTLIBOBJS=''
164 OBJEXT=''
165 PACKAGE_BUGREPORT='sjg@NetBSD.org'
166 PACKAGE_NAME='bmake'
167 PACKAGE_STRING='bmake 20140214'
168 PACKAGE_TARNAME='bmake'
169 PACKAGE_URL=''
170 PACKAGE_VERSION='20140214'
171 PATH_SEPARATOR=':'
172 SHELL='/bin/sh'
173 ac_ct_CC='gcc'
174 ac_exe_suffix=''
175 bindir='${exec_prefix}/bin'
176 bmake_path_max=''
177 build_alias=''
178 datadir='${datarootdir}'
179 datarootdir='${prefix}/share'
180 default_sys_path=''
181 diff_u=''
182 docdir='${datarootdir}/doc/${PACKAGE_TARNAME}'
183 dvidir='${docdir}'
184 exec_prefix='NONE'
185 filemon_h='no'
186 force_machine=''
187 host_alias=''
188 htmldir='${docdir}'
189 includedir='${prefix}/include'
190 infodir='${datarootdir}/info'
191 libdir='${exec_prefix}/lib'
192 libexecdir='${exec_prefix}/libexec'
193 localedir='${datarootdir}/locale'
194 localstatedir='${prefix}/var'
195 machine=''
196 machine_arch=''
197 mandir='${datarootdir}/man'
198 mksrc=''
199 oldincludedir='/usr/include'
200 pdfdir='${docdir}'
201 prefix='/home/vagrant/pkgsrc/bootstrap/work'
202 program_transform_name='s,x,x,'
203 psdir='${docdir}'
204 sbindir='${exec_prefix}/sbin'
205 sharedstatedir='${prefix}/com'
206 sysconfdir='${prefix}/etc'
207 target_alias=''
208 use_meta='yes'
209
210 ## ----------- ##
211 ## confdefs.h. ##
212 ## ----------- ##
213
214 /* confdefs.h */
215 #define PACKAGE_NAME "bmake"
216 #define PACKAGE_TARNAME "bmake"
217 #define PACKAGE_VERSION "20140214"
218 #define PACKAGE_STRING "bmake 20140214"
219 #define PACKAGE_BUGREPORT "sjg@NetBSD.org"
220 #define PACKAGE_URL ""
221
222 configure: exit 77
I guessed some files were missing, but couldn't understand what to do.
update2(2017/04/11)
the following is the result of `gcc -v'
-bash-4.4$ gcc -v
Using built-in specs.
COLLECT_GCC=gcc
COLLECT_LTO_WRAPPER=/usr/pkg/gcc6/libexec/gcc/x86_64--netbsd/6.3.0/lto-wrapper
Target: x86_64--netbsd
Configured with: ../gcc-6.3.0/configure --disable-libstdcxx-pch --enable-nls --with-libiconv-prefix=/usr --enable-__cxa_atexit --with-gxx-include-dir=/usr/pkg/gcc6/include/c++/ --enable-languages='c obj-c++ objc fortran c++' --enable-shared --enable-long-long --with-local-prefix=/usr/pkg/gcc6 --disable-libssp --enable-threads=posix --with-boot-ldflags='-static-libstdc++ -static-libgcc -Wl,-R/usr/pkg/lib ' --with-arch=nocona --with-tune=nocona --with-fpmath=sse --with-gnu-ld --with-ld=/usr/bin/ld --with-gnu-as --with-as=/usr/bin/as --prefix=/usr/pkg/gcc6 --build=x86_64--netbsd --host=x86_64--netbsd --infodir=/usr/pkg/gcc6/info --mandir=/usr/pkg/gcc6/man
Thread model: posix
gcc version 6.3.0 (GCC)
And I chose minimum install at the installation process. Is that wrong?
Best Answer
Always supply detailed error messages! (or at least more than enough to give a clue as to what actual problem is being encountered as this avoids unnecessary extra exchanges -- many folks will simply ignore questions if there's not enough information to provide any meaningful direction)
Anyway,
./bootstrap --unprivileged
should work on a NetBSD host (it worked for me).I'm not sure it's a good idea though. Some things won't (and cannot) be installed in unprivileged mode, since they must either modify system files, or be installed setuid, etc.
I build packages as a normal user, but always install them as
root
.