Hi I am new to snapcraft. I want to copy shared lib files to stage folder in one part.I can use these files in second part to cmake c++ code.
In first part while copying shared libs it shows error...no such file or directory...but the files are already present. I have tried both of things file with symlink and without symlink.....Please help if I am doing something wrong or I should chnage follow_symlink to True.
Preparing to pull files-copy
Pulling files-copy
'image-reading2' has prerequisites that need to be staged: files-copy
Preparing to build files-copy
Building files-copy
Traceback (most recent call last):
File "/snap/snapcraft/1345/lib/python3.6/site-packages/snapcraft/file_utils.py", line 119, in link_or_copy
os.link(source_path, destination, follow_symlinks=False)
FileNotFoundError: [Errno 2] No such file or directory: '/usr/local/lib/libopencv_core.so.3.2' -> '/root/build_image-reading2/parts/files-copy/install/libopencv_core.so.3.2'
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/snap/snapcraft/1345/bin/snapcraft", line 11, in <module>
load_entry_point('snapcraft==2.40.1', 'console_scripts', 'snapcraft')()
File "/snap/snapcraft/1345/usr/lib/python3.6/site-packages/pkg_resources/__init__.py", line 565, in load_entry_point
return get_distribution(dist).load_entry_point(group, name)
File "/snap/snapcraft/1345/usr/lib/python3.6/site-packages/pkg_resources/__init__.py", line 2631, in load_entry_point
return ep.load()
File "/snap/snapcraft/1345/usr/lib/python3.6/site-packages/pkg_resources/__init__.py", line 2291, in load
return self.resolve()
File "/snap/snapcraft/1345/usr/lib/python3.6/site-packages/pkg_resources/__init__.py", line 2297, in resolve
module = __import__(self.module_name, fromlist=['__name__'], level=0)
File "/snap/snapcraft/1345/lib/python3.6/site-packages/snapcraft/cli/__main__.py", line 43, in <module>
run(prog_name='snapcraft')
File "/snap/snapcraft/1345/lib/python3.6/site-packages/click/core.py", line 722, in __call__
return self.main(*args, **kwargs)
File "/snap/snapcraft/1345/lib/python3.6/site-packages/click/core.py", line 697, in main
rv = self.invoke(ctx)
File "/snap/snapcraft/1345/lib/python3.6/site-packages/click/core.py", line 1066, in invoke
return _process_result(sub_ctx.command.invoke(sub_ctx))
File "/snap/snapcraft/1345/lib/python3.6/site-packages/click/core.py", line 895, in invoke
return ctx.invoke(self.callback, **ctx.params)
File "/snap/snapcraft/1345/lib/python3.6/site-packages/click/core.py", line 535, in invoke
return callback(*args, **kwargs)
File "/snap/snapcraft/1345/lib/python3.6/site-packages/snapcraft/cli/lifecycle.py", line 139, in snap
project_options, directory=directory, output=output)
File "/snap/snapcraft/1345/lib/python3.6/site-packages/snapcraft/internal/lifecycle/_packer.py", line 46, in snap
execute('prime', project_options)
File "/snap/snapcraft/1345/lib/python3.6/site-packages/snapcraft/internal/lifecycle/_runner.py", line 80, in execute
_Executor(config, project_options).run(step, part_names)
File "/snap/snapcraft/1345/lib/python3.6/site-packages/snapcraft/internal/lifecycle/_runner.py", line 191, in run
self._run_step(step, part, part_names)
File "/snap/snapcraft/1345/lib/python3.6/site-packages/snapcraft/internal/lifecycle/_runner.py", line 225, in _run_step
self.run(required_step, step_prereqs)
File "/snap/snapcraft/1345/lib/python3.6/site-packages/snapcraft/internal/lifecycle/_runner.py", line 191, in run
self._run_step(step, part, part_names)
File "/snap/snapcraft/1345/lib/python3.6/site-packages/snapcraft/internal/lifecycle/_runner.py", line 236, in _run_step
getattr(part, step)()
File "/snap/snapcraft/1345/lib/python3.6/site-packages/snapcraft/internal/pluginhandler/__init__.py", line 368, in build
self.plugin.build()
File "/snap/snapcraft/1345/lib/python3.6/site-packages/snapcraft/plugins/copy.py", line 103, in build
_recursively_link(src, dst, self.installdir)
File "/snap/snapcraft/1345/lib/python3.6/site-packages/snapcraft/plugins/copy.py", line 139, in _recursively_link
_link_or_copy(source, destination, boundary)
File "/snap/snapcraft/1345/lib/python3.6/site-packages/snapcraft/plugins/copy.py", line 124, in _link_or_copy
follow_symlinks=follow_symlinks)
File "/snap/snapcraft/1345/lib/python3.6/site-packages/snapcraft/file_utils.py", line 126, in link_or_copy
shutil.copy2(source, destination, follow_symlinks=follow_symlinks)
File "/snap/snapcraft/1345/usr/lib/python3.6/shutil.py", line 251, in copy2
copyfile(src, dst, follow_symlinks=follow_symlinks)
File "/snap/snapcraft/1345/usr/lib/python3.6/shutil.py", line 114, in copyfile
with open(src, 'rb') as fsrc:
FileNotFoundError: [Errno 2] No such file or directory: '/usr/local/lib/libopencv_core.so.3.2'
Stopping local:snapcraft-superexpressively-untestifying-noel
This snapcraft.yaml is very dependent on your host system, which isn't really how snapcraft was designed to be used. It's impossible for us to know exactly what's happening as a result. You should get rid of that first part, and stage those packages directly instead, something like this:
# ... highgui3. 2 imgproc3. 2 imgcodecs3. 2
parts:
image-reading2:
plugin: cmake
source: src
build-packages:
- g++
stage-packages:
- libopencv-core3.2
- libopencv-
- libopencv-
- libopencv-
That said, that still may not be what you want, since you probably want to ensure the -dev packages are installed as well (e.g. libopencv- highgui- dev in build-packages), but I won't assume too much.