I straced that matlab/bin/glnxa64/install_unix
, stat("/tmp/makepkg/matlab/src/matlab/sys/java/jre/glnxa64/jre/lib/security/jssecacerts", 0x7fffe1f6baf0) = -1 ENOENT (No such file or directory)
is what I suspect wrong. Do you have this file in your downloaded matlab folder?
Search Criteria
Package Details: matlab-gcc 1:R2025a+25.1.0.2973910-1
Package Actions
Git Clone URL: | https://aur.archlinux.org/matlab.git (read-only, click to copy) |
---|---|
Package Base: | matlab |
Description: | A high-level language for numerical computation and visualization (GCC runtime dependency) |
Upstream URL: | https://www.mathworks.com/products/matlab.html |
Keywords: | computation matlab numerical visualization |
Licenses: | custom:MATLAB EULA |
Provides: | matlab-gcc, matlab-gcc-release, matlab-gcc-version |
Submitter: | ido |
Maintainer: | None |
Last Packager: | vitaliikuzhdin |
Votes: | 41 |
Popularity: | 0.30 |
First Submitted: | 2015-08-15 09:33 (UTC) |
Last Updated: | 2025-07-30 20:23 (UTC) |
Dependencies (5)
- gcc10AUR
- matlabAUR (matlab-supportAUR)
- gendesk (make)
- inotify-tools (inotify-tools-gitAUR) (make)
- matlab-mpm-release (matlab-mpmAUR) (make)
Required by (1)
- matlab (optional)
Sources (1)
Latest Comments
« First ‹ Previous 1 .. 8 9 10 11 12 13 14 15 16 17 18 .. 28 Next › Last »
Hork commented on 2021-01-28 10:47 (UTC) (edited on 2021-01-28 10:49 (UTC) by Hork)
silverbluep commented on 2021-01-27 19:44 (UTC) (edited on 2021-01-27 19:47 (UTC) by silverbluep)
What is that installer? I can't help if you are not being specific. The installer for MATLAB does not print to stdout; and that's on mathworks nothing I can do. There should be some installer log somewhere; but I don't know where the installer puts it. Your problem is not due to python; because anything to do with python is printed on stdout when you run makepkg.
You don't need to do any chrooting; install dependencies, bring together the neccessary files and mimic the PKGBUILD steps (on your home directory; NOT on your main system.) Be sure to read the README.md in the repo, and make sure you are not using ANY aur helper.
Hork commented on 2021-01-27 17:30 (UTC)
That is the thing, I don't actually know whats wrong with that installer, it does not have any log. I don't even know how to debug this, I might need to do some chroot to mimic makepkg and go through build steps one by one.
silverbluep commented on 2021-01-26 19:55 (UTC) (edited on 2021-01-26 19:59 (UTC) by silverbluep)
that is not very specific; what issue are you having? Either way; make sure you rebuild the aur dependencies and jupyter-matlab_kernel-git again so that everything is using python 3.9 (you need to rebuild python-dependent aur packages again; even if their pkgbuild are not updated)
I built this package just fine; with the up to date versions of dependencies. And everything works. So curious as to what is not working.
Hork commented on 2021-01-26 18:39 (UTC)
I still have that python issue, with latest pkgbuild.
Andy2 commented on 2021-01-22 20:27 (UTC)
Hi,
I ran into the same Python issue and I "backported" the Python 3.8 faking for Python 3.9. Matlab installed and I was able to start a Matlab engine from an iPython shell, so I would suspect it works.
I even installed the Update 3 as root after Matlab told me I could do that from the little bell icon menu and it still works.
Patch:
diff --git a/PKGBUILD b/PKGBUILD
index b6a40eb..87f79b8 100644
--- a/PKGBUILD
+++ b/PKGBUILD
@@ -150,22 +150,53 @@ build() {
# cause the installation to be non-interactive
"${srcdir}/${pkgname}/install" -inputFile "${srcdir}/${pkgname}/installer_input.txt"
+ # Create spoofing for Python API
+ # https://aur.archlinux.org/packages/matlab-engine-for-python/
+ cd "${srcdir}/build/extern/engines/python"
+ # Getting appropriate python version for spoofing
+ _matminor="$(find "${srcdir}/build/extern/engines/python" \
+ -name 'matlabengineforpython3*.so' |
+ sort |
+ sed 's|.*matlabengineforpython3_\([0-9]\)\.so|\1|g' |
+ tail -1)"
+ echo 'import sys' > "${srcdir}/sitecustomize.py"
+ echo "sys.version_info = (3, ${_matminor}, 0)" >> "${srcdir}/sitecustomize.py"
+
# Build the python API
cd "${srcdir}/build/extern/engines/python"
- python setup.py build
+ PYTHONPATH="${srcdir}" python setup.py build
}
package() {
# Package the python API
cd "${srcdir}/build/extern/engines/python"
- python setup.py install --root="${pkgdir}" --optimize 1 --skip-build
- # Fix erronous referances in the _arch.txt files
+ PYTHONPATH="${srcdir}" python setup.py install --root="${pkgdir}" --optimize 1 --skip-build
+
+ # Spoofing trick to fool matlab into believing python 3.9 is supported
+ _matminor="$(find "${srcdir}/build/extern/engines/python" \
+ -name 'matlabengineforpython3*.so' |
+ sort |
+ sed 's|.*matlabengineforpython3_\([0-9]\)\.so|\1|g' |
+ tail -1)"
+ _prefix="$(python -c 'import sys; print(sys.prefix)')"
+ _pytminor="$(python -c 'import sys; print(sys.version_info.minor)')"
+
+ # Correct file names
+ if [[ "${_pytminor}" != "${_matminor}" ]]; then
+ mv "${pkgdir}/${_prefix}/lib/python3".{"${_matminor}","${_pytminor}"}
+ _egginfo="$(ls "${pkgdir}/${_prefix}/lib/python3.${_pytminor}/site-packages/"*"-py3.${_matminor}.egg-info")"
+ mv "${_egginfo}" "${_egginfo%py3."${_matminor}".egg-info}py3.${_pytminor}.egg-info"
+ sed -i "s|sys.version_info|(3, $_matminor, 0)|" \
+ "${pkgdir}/${_prefix}/lib/python3.${_pytminor}/site-packages/matlab/engine/__init__.py"
+ fi
+
+ # Fix erronous references in the _arch.txt files
_prefix="$(python -c 'import sys; print(sys.prefix)')"
errstr="${srcdir}/build/extern/engines/python/"
trustr="${instdir}/extern/engines/python/"
for _dir in \
"${srcdir}/build/extern/engines/python/build/lib/matlab/engine" \
- "${pkgdir}/${_prefix}/lib/python3.8/site-packages/matlab/engine" \
+ "${pkgdir}/${_prefix}/lib/python3.${_pytminor}/site-packages/matlab/engine" \
; do
sed -i "s|${errstr}|${trustr}|" "${_dir}/_arch.txt"
done
silverbluep commented on 2021-01-06 03:10 (UTC)
@hawath; when I last updated the package; gcc8 was not in AUR and I do not have any intention to package that. It seems gcc8 was submitted to AUR a month after I installed the package. I'll also change the gcc version when I fix the python issue.
silverbluep commented on 2021-01-06 03:07 (UTC)
@tornado99; that's where external software is installed. https://en.wikipedia.org/wiki/Filesystem_Hierarchy_Standard
silverbluep commented on 2021-01-06 03:05 (UTC)
@magnetron2.4ghz you need to switch the spoof for python 3.7 to python 3.8; it's not gonna be seamless copy paste. However; the line you are reporting should work; as I installed using the previous version before. I do remember making a few typos that made the package not build but I recall not committing them but perhaps I did?
@sukanka; this is a system-wide installation pkgbuild thus I see no reason to integrate with anaconda or neither do I use anaconda myself. So for that, you are on your own.
If you people rather not deal with this; you can remove the matlab-engine-for-python from depends array manually; and remove any build instructions for python integration. The reason why i included this in the package is to play nice with jupyter-matlab_kernel-git; integration needs to happen on the matlab pkgbuild; not a seperate one otherwise the pkgbuild tries to run matlab which is unneccessary overhead. (Year 2021 and matlab still does not respect a quick version check on their launcher matlab script.)
Again I apologize for the delay in updating the package; but I'm not going to push any changes until I can confirm that everything works; and I need access to my PC before that. I'm not going to my workplace until end of January due to COVID so only going to be able to test then.
Pinned Comments
vitaliikuzhdin commented on 2025-07-16 13:12 (UTC) (edited on 2025-08-05 20:05 (UTC) by vitaliikuzhdin)
TODO:
Figure out the users and permissions. Currently,
/opt/MATLAB/${_release}
has777
permissions, which is obviously undesired. It might be better to create a user group and require users to manually add themselves to it for security reasons.Improve the installer. For example, the current inotify watcher spams stdout and does not account for the end of the download/installation or the width of the terminal, which results in flaky output.
Figure out the dependencies. The list of Debian/RHEL dependencies is public, but it includes some seemingly unneeded packages. This might be because they are required by dependent products/add-ons. Additionally, the current logic for removing bundled dependencies should probably be rewritten. Maintaining an exhaustive list for a single release is very difficult, and these components change without notice. Moreover, the current approach may go against the Arch KISS philosophy. Ideally, we should remove only the problematic components like Qt, XCB,
libtiff
,gcc-libs
,fontconfig
, etc.Add auto-discovery for packages written for MATLAB. My plan was to use
/usr/lib/MATLAB/${_release}
for release-specific modules and/usr/lib/MATLAB/common
for shared (mostly architecture-independent) packages. However, load order matters, and "common" modules need to specify which releases they are compatible with. This means we need to implement our own logic for discovering and loading these, likely via hooks, shell scripts, and configuration files (perhaps TOML could work?).Fix the Python components.
python-matlabengine
does install the Python components built against the version of Python shipped by Arch. However, some proprietary CPython components are not included and are built against ancient Python versions. This likely requires version spoofing or some alternative approach.Write and upload packages for previous MATLAB releases. It is entirely possible to have multiple releases installed simultaneously. I have a few of these packages myself, but they are drafts and not suitable for upload to the AUR.
Write and upload packages for MATLAB-dependent add-ons and products. When installing MATLAB required user intervention for source access, it was acceptable to break reproducibility and manually specify required products for installation. Now that we use MPM, it would be better to separate products into individual packages. These packages would install themselves and their dependencies into a specific location, then use
appdata
to install only the component's files. The problem is that MATLAB often includes conflicting files that need to be combined or overwritten. Obviously, we can't allow that, so a hook must be implemented to, for example, combine*.combine@matlab-simulink
and replace*.replace@matlab-documentation
files with backups. Needless to say, this is challenging to implement, so the previous approach (having users specify the product list) might still be preferred.Write and upload the
matlab-runtime
package. I have a draft, but the problem with this package is that it installs the runtime for every available product. Ideally, for source-built packages, we would want tomakedepend
onmatlab-$product
anddepend
onmatlab-$product-runtime
. However, this is not possible without splitting the runtime packages, which poses the challenges described above. I’ll try my best to revisit this sometime later.vitaliikuzhdin commented on 2025-07-16 12:55 (UTC)
@aoneko, @Reexys, please read the post-installation instructions. If you've lost them, you can find the same information here.