Ubuntu 20.04 Focal Fossa
Dear all,
Here follows attached a sage crash report. I think the sage install was
broken by installation of Blender.
Sage was installed this way on my fresh Ubuntu 20.04 Focal Fossa:
sudo apt install sagemath sagetex- texlive-latex-base- sagemath-jupyter-
pari-doc- sagemath-doc-
(afterwards I did
sudo apt install jupyter
and
sudo apt install sagemath-jupyter
everything was working fine)
Today I installed Blender
sudo add-apt-repository ppa:savoury1/ffmpeg4
sudo add-apt-repository ppa:savoury1/blender
sudo apt-get update
sudo apt-get upgrade && sudo apt-get dist-upgrade
sudo apt-get install blender
Afterwards
I tried the command
|maxima('plotdf([-y,-x],[x,y],[x,-2,2],[y,-2,2])') |
in the jupyter notebook and I got a missing Kernel error
afterwards the kernel would not restart successfully and I restarted my
computer.
Then I run
sage
in the terminal, which generated this crash report.
Currently, Sage is not working anymore on my computer.
There are strange things about python and numpy written in Blender's ppa
description. I attach this description too (see lines 23 and 43).
I checked the result of python3 --version in the terminal and got
Python 3.8.10
Any hint towards the resolution of this sad situation is welcome.
Thanks fo your work on Sage.
Best,
Gaël Cousin.
--
You received this message because you are subscribed to the Google Groups
"sage-support" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to sage-support+unsubscr...@googlegroups.com.
To view this discussion on the web visit
https://groups.google.com/d/msgid/sage-support/4600086d-51fa-f96c-c725-08ad013ab42c%40gmail.com.
***************************************************************************
IPython post-mortem report
{'commit_hash': '<not found>',
'commit_source': '(none found)',
'default_encoding': 'utf-8',
'ipython_path': '/usr/lib/python3/dist-packages/IPython',
'ipython_version': '7.13.0',
'os_name': 'posix',
'platform': 'Linux-5.10.0-1038-oem-x86_64-with-glibc2.29',
'sys_executable': '/usr/bin/python3',
'sys_platform': 'linux',
'sys_version': '3.8.10 (default, Jun 2 2021, 10:49:15) \n[GCC 9.4.0]'}
***************************************************************************
***************************************************************************
Crash traceback:
---------------------------------------------------------------------------
---------------------------------------------------------------------------
ImportError Python 3.8.10: /usr/bin/python3
Mon Aug 16 16:37:37 2021
A problem occurred executing Python code. Here is the sequence of function
calls leading up to the error, with the most recent (innermost) call last.
/usr/share/sagemath/bin/sage-ipython in <module>
1 #!/usr/bin/env sage-python
2 # -*- coding: utf-8 -*-
3 """
4 Sage IPython startup script.
5 """
6
7 # Display startup banner. Do this before anything else to give the user
8 # early feedback that Sage is starting.
9 from sage.misc.banner import banner
10 banner()
11
12 from sage.repl.interpreter import SageTerminalApp
13
14 app = SageTerminalApp.instance()
---> 15 app.initialize()
global app.initialize = <bound method TerminalIPythonApp.initialize of
<sage.repl.interpreter.SageTerminalApp object at 0x7fd1dccd5070>>
16 app.start()
<decorator-gen-113> in initialize(self=<sage.repl.interpreter.SageTerminalApp
object>, argv=None)
/usr/lib/python3/dist-packages/traitlets/config/application.py in
catch_config_error(method=<function TerminalIPythonApp.initialize>,
app=<sage.repl.interpreter.SageTerminalApp object>, *args=(None,), **kwargs={})
72 TRAITLETS_APPLICATION_RAISE_CONFIG_FILE_ERROR = False
73 else:
74 raise ValueError("Unsupported value for environment variable:
'TRAITLETS_APPLICATION_RAISE_CONFIG_FILE_ERROR' is set to '%s' which is none of
{'0', '1', 'false', 'true', ''}."% _envvar )
75
76
77 @decorator
78 def catch_config_error(method, app, *args, **kwargs):
79 """Method decorator for catching invalid config
(Trait/ArgumentErrors) during init.
80
81 On a TraitError (generally caused by bad config), this will print
the trait's
82 message, and exit the app.
83
84 For use on init methods, to prevent invoking excepthook on invalid
input.
85 """
86 try:
---> 87 return method(app, *args, **kwargs)
method = <function TerminalIPythonApp.initialize at 0x7fd1db5265e0>
app = <sage.repl.interpreter.SageTerminalApp object at 0x7fd1dccd5070>
args = (None,)
kwargs = {}
88 except (TraitError, ArgumentError) as e:
89 app.print_help()
90 app.log.fatal("Bad config encountered during initialization:")
91 app.log.fatal(str(e))
92 app.log.debug("Config at the time: %s", app.config)
93 app.exit(1)
94
95
96 class ApplicationError(Exception):
97 pass
98
99
100 class LevelFormatter(logging.Formatter):
101 """Formatter with additional `highlevel` record
102
/usr/lib/python3/dist-packages/IPython/terminal/ipapp.py in
initialize(self=<sage.repl.interpreter.SageTerminalApp object>, argv=None)
302
303 return super(TerminalIPythonApp, self).parse_command_line(argv)
304
305 @catch_config_error
306 def initialize(self, argv=None):
307 """Do actions after construct, but before starting the app."""
308 super(TerminalIPythonApp, self).initialize(argv)
309 if self.subapp is not None:
310 # don't bother initializing further, starting subapp
311 return
312 # print self.extra_args
313 if self.extra_args and not self.something_to_run:
314 self.file_to_run = self.extra_args[0]
315 self.init_path()
316 # create the shell
--> 317 self.init_shell()
self.init_shell = <bound method SageTerminalApp.init_shell of
<sage.repl.interpreter.SageTerminalApp object at 0x7fd1dccd5070>>
318 # and draw the banner
319 self.init_banner()
320 # Now a variety of things that happen after the banner is
printed.
321 self.init_gui_pylab()
322 self.init_extensions()
323 self.init_code()
324
325 def init_shell(self):
326 """initialize the InteractiveShell instance"""
327 # Create an InteractiveShell instance.
328 # shell.display_banner should always be False for the terminal
329 # based app, because we call shell.show_banner() by hand below
330 # so the banner shows *before* all extension loading stuff.
331 self.shell = self.interactive_shell_class.instance(parent=self,
332 profile_dir=self.profile_dir,
/usr/lib/python3/dist-packages/sage/repl/interpreter.py in
init_shell(self=<sage.repl.interpreter.SageTerminalApp object>)
727 self.shell.has_sage_extensions = SAGE_EXTENSION in
self.extensions
728
729 # Load the %lprun extension if available
730 try:
731 import line_profiler
732 except ImportError:
733 pass
734 else:
735 self.extensions.append('line_profiler')
736
737 if self.shell.has_sage_extensions:
738 self.extensions.remove(SAGE_EXTENSION)
739
740 # load sage extension here to get a crash if
741 # something is wrong with the sage library
--> 742 self.shell.extension_manager.load_extension(SAGE_EXTENSION)
self.shell.extension_manager.load_extension = <bound method
ExtensionManager.load_extension of <IPython.core.extensions.ExtensionManager
object at 0x7fd1d967e7c0>>
global SAGE_EXTENSION = 'sage'
743
744
/usr/lib/python3/dist-packages/IPython/core/extensions.py in
load_extension(self=<IPython.core.extensions.ExtensionManager object>,
module_str='sage')
72 if module_str in self.loaded:
73 return "already loaded"
74
75 from IPython.utils.syspathcontext import prepended_to_syspath
76
77 with self.shell.builtin_trap:
78 if module_str not in sys.modules:
79 with prepended_to_syspath(self.ipython_extension_dir):
80 mod = import_module(module_str)
81 if
mod.__file__.startswith(self.ipython_extension_dir):
82 print(("Loading extensions from {dir} is
deprecated. "
83 "We recommend managing extensions like
any "
84 "other Python packages, in
site-packages.").format(
85
dir=compress_user(self.ipython_extension_dir)))
86 mod = sys.modules[module_str]
---> 87 if self._call_load_ipython_extension(mod):
self._call_load_ipython_extension = <bound method
ExtensionManager._call_load_ipython_extension of
<IPython.core.extensions.ExtensionManager object at 0x7fd1d967e7c0>>
mod = <module 'sage' from
'/usr/lib/python3/dist-packages/sage/__init__.py'>
88 self.loaded.add(module_str)
89 else:
90 return "no load function"
91
92 def unload_extension(self, module_str):
93 """Unload an IPython extension by its module name.
94
95 This function looks up the extension's name in ``sys.modules``
and
96 simply calls ``mod.unload_ipython_extension(self)``.
97
98 Returns the string "no unload function" if the extension
doesn't define
99 a function to unload itself, "not loaded" if the extension
isn't loaded,
100 otherwise None.
101 """
102 if module_str not in self.loaded:
/usr/lib/python3/dist-packages/IPython/core/extensions.py in
_call_load_ipython_extension(self=<IPython.core.extensions.ExtensionManager
object>, mod=<module 'sage' from
'/usr/lib/python3/dist-packages/sage/__init__.py'>)
119 """
120 from IPython.utils.syspathcontext import prepended_to_syspath
121
122 if (module_str in self.loaded) and (module_str in sys.modules):
123 self.unload_extension(module_str)
124 mod = sys.modules[module_str]
125 with prepended_to_syspath(self.ipython_extension_dir):
126 reload(mod)
127 if self._call_load_ipython_extension(mod):
128 self.loaded.add(module_str)
129 else:
130 self.load_extension(module_str)
131
132 def _call_load_ipython_extension(self, mod):
133 if hasattr(mod, 'load_ipython_extension'):
--> 134 mod.load_ipython_extension(self.shell)
mod.load_ipython_extension = <function load_ipython_extension at
0x7fd1dcc44040>
self.shell = <sage.repl.interpreter.SageTerminalInteractiveShell object
at 0x7fd1db4c09d0>
135 return True
136
137 def _call_unload_ipython_extension(self, mod):
138 if hasattr(mod, 'unload_ipython_extension'):
139 mod.unload_ipython_extension(self.shell)
140 return True
141
142 @undoc
143 def install_extension(self, url, filename=None):
144 """
145 Deprecated.
146 """
147 # Ensure the extension directory exists
148 raise DeprecationWarning(
149 '`install_extension` and the `install_ext` magic have been
deprecated since IPython 4.0'
/usr/lib/python3/dist-packages/sage/__init__.py in
load_ipython_extension(*args=(<sage.repl.interpreter.SageTerminalInteractiveShell
object>,))
1 __all__ = ['all']
2
3 # Set sage.__version__ to the current version number. This is analogous
4 # to many other Python packages.
5 from sage.version import version as __version__
6
7 # Make sure that the correct zlib library is loaded. This is needed
8 # to prevent the system zlib to be loaded instead of the Sage one.
9 # See https://trac.sagemath.org/ticket/23122
10 import zlib
11
12 # IPython calls this when starting up
13 def load_ipython_extension(*args):
14 import sage.repl.ipython_extension
---> 15 sage.repl.ipython_extension.load_ipython_extension(*args)
sage.repl.ipython_extension.load_ipython_extension = <function
load_ipython_extension at 0x7fd1d943baf0>
args = (<sage.repl.interpreter.SageTerminalInteractiveShell object at
0x7fd1db4c09d0>,)
16
17
18 # Monkey-patch inspect.isfunction() to support Cython functions.
19 def isfunction(obj):
20 """
21 Check whether something is a function.
22
23 We assume that anything which has a genuine ``__code__``
24 attribute (not using ``__getattr__`` overrides) is a function.
25 This is meant to support Cython functions.
26
27 EXAMPLES::
28
29 sage: from inspect import isfunction
30 sage: def f(): pass
31 sage: isfunction(f)
/usr/lib/python3/dist-packages/sage/repl/ipython_extension.py in
wrapper(*args=(<sage.repl.interpreter.SageTerminalInteractiveShell object>,),
**kwargs={})
547 ....: if work:
548 ....: return 'foo worked'
549 ....: raise RuntimeError("foo didn't work")
550 sage: foo(False)
551 Traceback (most recent call last):
552 ...
553 RuntimeError: foo didn't work
554 sage: foo(True)
555 'foo worked'
556 sage: foo(False)
557 sage: foo(True)
558 """
559 @wraps(func)
560 def wrapper(*args, **kwargs):
561 if not wrapper.has_run:
--> 562 result = func(*args, **kwargs)
result = undefined
global func = undefined
args = (<sage.repl.interpreter.SageTerminalInteractiveShell object at
0x7fd1db4c09d0>,)
kwargs = {}
563 wrapper.has_run = True
564 return result
565 wrapper.has_run = False
566 return wrapper
567
568
569 @run_once
570 def load_ipython_extension(ip):
571 """
572 Load the extension in IPython.
573 """
574 # this modifies ip
575 SageCustomizations(shell=ip)
/usr/lib/python3/dist-packages/sage/repl/ipython_extension.py in
load_ipython_extension(ip=<sage.repl.interpreter.SageTerminalInteractiveShell
object>)
560 def wrapper(*args, **kwargs):
561 if not wrapper.has_run:
562 result = func(*args, **kwargs)
563 wrapper.has_run = True
564 return result
565 wrapper.has_run = False
566 return wrapper
567
568
569 @run_once
570 def load_ipython_extension(ip):
571 """
572 Load the extension in IPython.
573 """
574 # this modifies ip
--> 575 SageCustomizations(shell=ip)
global SageCustomizations = <class
'sage.repl.ipython_extension.SageCustomizations'>
global shell = undefined
ip = <sage.repl.interpreter.SageTerminalInteractiveShell object at
0x7fd1db4c09d0>
/usr/lib/python3/dist-packages/sage/repl/ipython_extension.py in
__init__(self=<sage.repl.ipython_extension.SageCustomizations object>,
shell=<sage.repl.interpreter.SageTerminalInteractiveShell object>)
420 def __init__(self, shell=None):
421 """
422 Initialize the Sage plugin.
423 """
424 self.shell = shell
425
426 self.auto_magics = SageMagics(shell)
427 self.shell.register_magics(self.auto_magics)
428
429 import sage.misc.edit_module as edit_module
430 self.shell.set_hook('editor', edit_module.edit_devel)
431
432 self.init_inspector()
433 self.init_line_transforms()
434
--> 435 import sage.all # until sage's import hell is fixed
sage.all = undefined
436
437 self.shell.verbose_quit = True
438 self.set_quit_hook()
439
440 self.register_interface_magics()
441
442 if SAGE_IMPORTALL == 'yes':
443 self.init_environment()
444
445 def register_interface_magics(self):
446 """
447 Register magics for each of the Sage interfaces
448 """
449 from sage.repl.interface_magic import InterfaceMagic
450 InterfaceMagic.register_all(self.shell)
/usr/lib/python3/dist-packages/sage/all.py in <module>
91 warnings.filterwarnings('ignore', category=RuntimeWarning,
92 message=r"'sin' and 'sout' swap memory stats couldn't be determined")
93 from sage.misc.all import * # takes a while
94 from sage.typeset.all import *
95 from sage.repl.all import *
96
97 from sage.misc.sh import sh
98
99 from sage.libs.all import *
100 from sage.data_structures.all import *
101 from sage.doctest.all import *
102
103 from sage.structure.all import *
104 from sage.rings.all import *
105 from sage.arith.all import *
--> 106 from sage.matrix.all import *
global sage.matrix.all = undefined
107
108 from sage.symbolic.all import *
109 from sage.modules.all import *
110 from sage.monoids.all import *
111 from sage.algebras.all import *
112 from sage.modular.all import *
113 from sage.sat.all import *
114 from sage.schemes.all import *
115 from sage.graphs.all import *
116 from sage.groups.all import *
117 from sage.arith.power import generic_power as power
118 from sage.databases.all import *
119 from sage.categories.all import *
120 from sage.sets.all import *
121 from sage.probability.all import *
/usr/lib/python3/dist-packages/sage/matrix/__init__.py in <module>
1 # Resolve a cyclic import
----> 2 import sage.matrix.args
global sage.matrix.args = undefined
/usr/lib/python3/dist-packages/sage/matrix/args.pyx in init sage.matrix.args
(build/cythonized/sage/matrix/args.c:21273)()
8 # Copyright (C) 2018 Jeroen Demeyer <j.deme...@ugent.be>
9 #
10 # This program is free software: you can redistribute it and/or modify
11 # it under the terms of the GNU General Public License as published by
12 # the Free Software Foundation, either version 2 of the License, or
13 # (at your option) any later version.
14 # http://www.gnu.org/licenses/
15
#*****************************************************************************
16
17 cimport cython
18 from cpython.sequence cimport PySequence_Fast
19 from cysignals.signals cimport sig_check
20 from cypari2.gen cimport Gen
21 from cypari2.types cimport typ, t_MAT, t_VEC, t_COL, t_VECSMALL,
t_LIST, t_STR, t_CLOSURE
22
---> 23 from .matrix_space import MatrixSpace
global matrix_space = undefined
global MatrixSpace = undefined
24 from sage.rings.all import ZZ, RDF, CDF
25 from sage.structure.coerce cimport (coercion_model,
26 is_numpy_type, py_scalar_parent)
27 from sage.structure.element cimport Element, RingElement, Vector
28 from sage.arith.long cimport pyobject_to_long
29 from sage.misc.misc_c import sized_iter
30 from sage.categories import monoids
31
32
33 CommutativeMonoids = monoids.Monoids().Commutative()
34
35
36 cdef inline bint element_is_scalar(Element x):
37 """
38 Should this element be considered a scalar (as opposed to a vector)?
/usr/lib/python3/dist-packages/sage/matrix/matrix_space.py in <module>
31 # (at your option) any later version.
32 # https://www.gnu.org/licenses/
33 #
****************************************************************************
34 from __future__ import print_function, absolute_import
35 from six.moves import range
36 from six import iteritems, integer_types
37
38 # System imports
39 import sys
40 import operator
41
42 # Sage matrix imports
43 from . import matrix_generic_dense
44 from . import matrix_generic_sparse
45
---> 46 from . import matrix_modn_sparse
global matrix_modn_sparse = undefined
47
48 from . import matrix_mod2_dense
49 from . import matrix_gf2e_dense
50
51 from . import matrix_integer_dense
52 from . import matrix_integer_sparse
53
54 from . import matrix_rational_dense
55 from . import matrix_rational_sparse
56
57 from . import matrix_polynomial_dense
58 from . import matrix_mpolynomial_dense
59
60 # Sage imports
61 from sage.misc.superseded import deprecation
ImportError:
/usr/lib/python3/dist-packages/sage/matrix/matrix_modn_sparse.cpython-38-x86_64-linux-gnu.so:
undefined symbol:
_ZNK6Givaro7IntegercvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEB5cxx11Ev
***************************************************************************
History of session input:
*** Last line of input (may not be in above history):
gael@gael-XPS-13-9310:~$ sudo add-apt-repository ppa:savoury1/blender
[sudo] Mot de passe de gael :
New builds of Blender 2.93.2 (and Blender 3.0.0 Alpha) for Xenial & newer.
Update (26 Feb 2021): Blender 2.92.0+ supports building CUDA kernels with a
combination of CUDA 10.2 and 11.3 (covering SM_30 through SM_8x). Also, Blender
>= 2.93 requires OpenColorIO >= 2.0.0 so OpenColorIO 1.1.1 is now packaged as
opencolorio1 (providing libopencolorio1{-dev} packages) such that each
OpenColorIO version can be used for different builds as needed.
Update (29 Sep 2020): Blender 2.91.0 Alpha and newer builds now with USD
(Universal Scene Description) support plus pre-compiled CUDA 11.1 kernels.
* Note: Both blender and blender-git versions can easily be co-installed on the
same system, via packaging various blender* files as blender-git* to ensure no
file conflicts between the two packages. Plus they also use distinct config
paths (~/.config/blender/2.93 and ~/.config/blender/3.0).
These are fresh builds with as many features enabled as possible. Making use of
work by Irie Shinsuke [1], Thomas Schiex [2] & Debian's multimedia packaging
team (thank you all!) and developing that work further this is a fairly
complete and up-to-date Blender build. Packages found here that are not in
default Debian/Ubuntu repos include: Alembic, Open Image Denoise, Open Shading
Language, Partio, Ptex, & Universal Scene Description (USD).
*** Donations: https://ko-fi.com/savoury1 & https://paypal.me/Savoury1 ***
If you find this PPA useful then please consider a donation (above links). It
will help me continue the efforts providing up-to-date Blender for all!
==========================================================================
Blender - fresh builds (Xenial & newer)
==========================================================================
alembic-io (1.8.2), blender (2.93.2), blender-git (3.0.0 Alpha 20210716),
collada-dom (2.5.0), embree (3.12.2), ilmbase (3.1.0 = imath), libde265
(1.0.8), libheif (1.12.0), libraw (0.20.2), libsdl2 (2.0.14), llvm-toolchain-11
(11.0.1), mpdecimal (2.5.1), nanovdb (0.1.0), opencollada (1.6.68),
opencolorio1 (1.1.1), opencolorio (2.0.1), opencv (imath rebuilds), openexr
(3.0.5), openimagedenoise (1.4.1), openimageio (2.2.16.0), openscenegraph
(3.6.5), openshadinglanguage (1.11.14.1), opensubdiv (3.4.4), openvdb (8.1.0),
partio (1.14.0), ptex (2.4.0+git20210629), pystring (1.1.3+git20200203),
python3.9 (3.9.6), robin-map (0.6.3), tbb (2020.3), usd (21.02), yaml-cpp
(0.6.3)
Focal only: pyside2 (5.14.0+really5.13.2 downgrade, due various use cases being
broken by Focal pyside2 5.14 plus Qt 5.12, eg. missing pyside2-uic)
Xenial & Bionic: armadillo, boost1.71, cfitsio, charls, coin3 (4.0.0), curl,
dcmtk, collada2gltf, fftw3, fontconfig, freetype, gdal, gdcm, geos, hwloc, icu
(66.1), jemalloc (5.2.1), json-c4, lapack, libdap, libevent, libgeotiff,
libidn2, libpng1.6, libpsl5, libzstd, mpich, netcdf, ogdi, openjpeg2, openssl,
poppler, pmix, proj, pugixml, pysimplesoap, python-{boto,httplib2,imaplib2}
(compat with new openssl), superlu, tesseract, tiff, xerces-c, xz-utils, zlib1g
Xenial only: hdf5, icu60, icu-le-hb, infinipath-psm, libfabric, libharu,
libkml, libsquish, libwebp, nghttp2, rdma-core
Note: Many above deps for Xenial & Bionic are interconnected and have been
copied here from other PPAs at this Launchpad site to make installation of the
latest Blender on older series easier, without needing too many PPAs.
==========================================================================
*** Install ***
NOTE FOR ALL: Blender here is built with ppa:savoury1/ffmpeg4 (the latest
stable release of FFmpeg 4.x) which PPA must also be added for install of
Blender. Thus, these are the steps required for a successful installation:
sudo add-apt-repository ppa:savoury1/ffmpeg4
sudo add-apt-repository ppa:savoury1/blender
sudo apt-get update
sudo apt-get upgrade && sudo apt-get dist-upgrade
sudo apt-get install blender
* Notes about Numpy: Due Blender 2.93+ needing Python 3.9+ (Xenial is 3.5,
Bionic 3.6, and Focal 3.8) Blender here is built with Python 3.9 for all
series. Numpy from python3-numpy (to /usr/lib/python3/dist-packages) will
therefore not work with Python 3.9 used by Blender for Focal and earlier. A
workaround is to install Numpy through pip then add a user site-packages path
to sys.path in a startup script (following steps outlined below).
All blender{-git}-data packages here depend on python3.9{-distutils} to ensure
a complete Python 3.9 install is available. The following commands using Python
3.9 will install pip first and then a compatible Python Numpy package
(bootstrap.pypa.io is hosted by Python Packaging Authority or PyPA so it's a
trusted site in terms of downloading get-pip.py to install pip):
cd ~
curl https://bootstrap.pypa.io/get-pip.py | python3.9
python3.9 -m pip install --target=.local/lib/python3.9/site-packages numpy
Then a Blender startup script can be added, using the path for user config
files. Use "~/.config/blender/2.93/scripts/startup" for 2.93 and create a file
such as usercustomize.py (change "USER" in the below to the logged in username
on your system) with contents such as the following two lines:
import sys
sys.path.insert(0, '/home/USER/.local/lib/python3.9/site-packages')
The result will be that "import numpy" works fine after loading Blender on
older series (ie. Xenial or Bionic) making Numpy functionality available.
Notes for Xenial & Bionic: Blender is demanding software. Recent versions
require many newer system libraries than shipped with these older series.
Packages here are built against various other PPAs at this Launchpad site (see
"Build" section below) and require various newer packages from those PPAs to
successfully install. This includes requiring GCC 9.3.0 (default GCC for Focal)
as Blender here is built with GCC 9.3.0 as the minimum.
Thus, installing Blender from this PPA requires extra steps for Xenial & Bionic
(many dependencies from backports, graphics & multimedia PPAs are now copied
here, so those PPAs should not need to be added -- if you find a dependency
still missing after the below steps please do let me know!):
sudo add-apt-repository ppa:savoury1/gcc-defaults-9
sudo add-apt-repository ppa:savoury1/ffmpeg4
sudo add-apt-repository ppa:savoury1/display
sudo add-apt-repository ppa:savoury1/blender
sudo apt-get update
sudo apt-get upgrade && sudo apt-get dist-upgrade
sudo apt-get install blender
Understand this will bring many upgrades including to GCC 9.3.0 which will be
made the system default GCC version. As always, please remember that it is wise
to backup first before such a major upgrade process is undertaken!
If running nVidia hardware see the display PPA for more information about
nVidia drivers: https://launchpad.net/~savoury1/+archive/ubuntu/display
Note for Xenial: CUDA 11.1+ requires Linux kernel >= 4.5 for bug-free
functionality, just as a newer kernel is best for numerous post-Xenial release
(2016 onwards) display drivers and graphics programs. See here:
https://docs.nvidia.com/cuda/cuda-installation-guide-linux/index.html
See the same display PPA above re: kernel >= 4.5 for new display drivers.
*** Build ***
This PPA has build dependencies on:
ppa:savoury1/build-tools
ppa:savoury1/backports
ppa:savoury1/graphics
ppa:savoury1/multimedia
ppa:savoury1/ffmpeg4
Additionally, required by Xenial & Bionic:
ppa:savoury1/haskell-build
ppa:savoury1/tex-2019
ppa:savoury1/python
ppa:savoury1/display
ppa:savoury1/gcc-defaults-9
ppa:savoury1/llvm-defaults-10
ppa:savoury1/boost-defaults1.71
Note about i386: Blender is not a good match for i386 arch and 2.90+ fails to
build on i386 even after carefully removing all amd64 only configs and deps.
The Blender packages built here will thus always be amd64 only, as that is
clearly the target architecture for all features. Bye bye i386!
*** Credits ***
- Creators of Blender: The Blender Foundation and Blender Institute
https://www.blender.org/about/
- Package code for Blender: Debian Multimedia Maintainers
https://tracker.debian.org/pkg/blender
- Python 3.9 packages: Now provided by backports from ppa:savoury1/python
with packaging hints and ideas from Felix Krull & the "deadsnakes" team
(https://launchpad.net/~deadsnakes), whose packages were formerly here.
- Package code for Alembic and Open Image Denoise: Irie Shinsuke
- Package code for Open Shading Language: Irie Shinsuke & Thomas Schiex
[1] https://launchpad.net/~irie/+archive/ubuntu/blender-builddep
[2] https://launchpad.net/~thomas-schiex/+archive/ubuntu/blender
Plus d’info : https://launchpad.net/~savoury1/+archive/ubuntu/blender