@bestfriend python-matlabengine
needs MATLAB to work. If I run pacman -Rcns matlab
, python-matlabengine
is removed, too. I don't know why it didn't work for you. If you update to R2022b and still experience this issue, please let me know.
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.32 |
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 2 3 4 5 6 7 8 9 10 .. 28 Next › Last »
Rubo commented on 2022-09-16 20:50 (UTC)
Rubo commented on 2022-09-16 13:52 (UTC) (edited on 2022-09-16 20:26 (UTC) by Rubo)
I updated the PKGBUILD to MATLAB R2022b. Sorry it took so long. Here are the main changes:
- The dependencies have been updated according to
namcap
(thanks @sukanka), and are now managed via the matlab-meta meta package, now it's really easy to play around with them, as you don't have to rebuild the entire MATLAB package (thanks @bbaserdem). I still don't know the exact dependencies needed by MATLAB, as I don't use all its toolkits and whatnots. As always, please tell me if you find something. - The MATLAB installer now outputs its logs in
install.log
, under the same directory of the PKGBUILD, so that you can check whether something went wrong even if it didn't fail (e.g. when you need a new license or installation key because the major version changed). - I moved
python-matlabengine
to its own repo, which is built from upstream and works for the latest MATLAB versions. Currently it supports Python 3.9 and 3.10. If you have other needs, you can find the installation instructions here. Since the source files are still provided in your local MATLAB installation under$_instdir/extern/engines/python
, building it and packaging it here was really just a convenience. I would like to know how many users of this PKGBUILD really need to spoof their Python version, so that we can reason about putting back that extra logic in the other PKGBUILD. - I also removed the Mesa workaround and the optional compilers, are they still needed?
bestfriend commented on 2022-09-15 23:00 (UTC)
Also should python-matlabengine be installed as a dependency of matlab? I noticed it was left on a previous install after pacman -Rcns matlab.
bestfriend commented on 2022-09-15 22:57 (UTC)
I omitted the libselinux and gconf dependencies and was able to install R2022a along with several toolboxes. Not sure if/when something will break. Arch Wiki says libselinux is for the help browser and livescripts. Help seems to work, but I don't use livescripts, so I'm not sure about that. Thanks for the package!
Rubo commented on 2022-08-29 19:15 (UTC) (edited on 2022-08-29 19:16 (UTC) by Rubo)
Hi @nisarg13, the PKGBUILD doesn't download the source files. It expects them to be in the same directory where you put the PKGBUILD. You can read the installation instructions here: https://github.com/Rubo3/matlab-aur
nisarg13 commented on 2022-08-29 17:30 (UTC)
Where do find the source files? it seems that the PKGBUILD was supposed to download them during installation, but it doesn't.
Rubo commented on 2022-08-21 20:40 (UTC)
Hi @bbaserdem, thanks for your message. I'm working on a new PKGBUILD with your improvements, hope to release it soon.
silverbluep commented on 2022-08-04 07:11 (UTC)
Couple tidbits;
I'm able to build with just the following makedepends, though my PKGBUILD is slightly different than this one. But mostly similar; as the PKGBUILD is based on mine; and from people whom I used as templates for the previous PKGBUILD.
gendesk
coreutils
findutils
python
ca-certificates
cairo
fontconfig
glib2
krb5
libgcrypt
libselinux
libxcrypt-compat
make
mesa
pam
unzip
util-linux-libs
Do not know if this is the minimal building set; but it is pretty small. Also; in your pkgbuild, the first array of dependencies is enough for me to run matlab without issues. The second array (which I had in the pkgbuild before) seems unneccessary; or at least feature dependent which I did not try. I personally opt to manage dependencies using a metapackage now, since I don't want to reinstall matlab to try new dependencies.
I see that this pkgbuild changes pkgver depending on the installation media. However; it probably won't work for anything 2020> , location of binaries and libraries and their versions are all different. The fixes in the python engine and the package_matlab()
version will fail on most older versions. Since it only is guaranteed to work with 2022a, maybe dynamic pkgver
is not a good idea?
I initially wrote the python spoofing based on some stuff I found online and through trial and effort. I switched methods; instead of making matlab think it's a lower number of python that is being run I just edited so that python engine thinks it supports 3.10. Have not been able to test if it works this way; but the previous spoofing is disabled (python 3.10 changed the way how sys.version_info works so you can't set it to a tuple, and the engine functions uses different methods which is non-trivial to spoof all around.) My solution is in my pkgbuild here.
Also; my suggestion on people with intel gpu, is that the default driver for mesa is iris; but matlab does not work with it. I used to use i956, but since december 2021; it's out of mesa due to being ancient. zink driver seems to work; so you can launch matlab with MESA_DRIVER_OVERRIDE=zink and hardware acceleration works.
daniel_shub commented on 2022-07-15 15:20 (UTC)
Any chance that MATLAB is lying to you? They have been known to sweep OpenGL issues under the rug
https://www.mathworks.com/matlabcentral/answers/239279-hardware-based-opengl-on-linux#answer_220778
"In the three cases listed previously hardware accelerated versions of Mesa are in fact being used. The problem is that the value of the OpenGL info 'software' field is actually incorrect. This issue has been fixed in R2016a."
Maybe they broke something again.
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.