It's a bit "do what you want", but it really expects the "local" part of /opt/local that MacPorts uses to be some sort of identifier for MacPorts. The LFS spec you linked to is actually ancient at version 0.65, the latest is 3.0 and available here. It makes sense to use /opt from an "application" point of view, but I think the problem is many of these package managers see themselves as more than that, and as pseudo-system components, which clouds their reasoning. Yes, that's where I would suggest putting it, but the reason projects don't is either because they aren't aware of it, feel it's a bit more convoluted to make sure you update where PATH is set, or that /opt is generally used for singular applications, not an extended hierarchy such as /opt/local (which is actually a truly weird name, /opt/macports/ with /opt/macports/bin, /opt/macports/lib, etc would make more sense). If users update it system wide, they can break OS assumptions. It's complicated because if it's available users to use, they'll use it, and when the OS wants to update or change it in some way it can break user assumptions. The problem of the OS shipping a component for it's own needs that gets used by others is a decades old problem at this point. Possibly because some are used by the OS to actually do things for the OS (not sure if Apple finally got rid most those dependencies or not). > Also, why is Python a developer tool, but Perl isn't? Or ZSH, for that matter? Does the distinction actually make any sense? Both make the other used of those locations more complicated to reason about. At the same time, it's user installed, so /usr/local seems valid. OS provided packages go into /usr, stuff a user manually compiles and installs goes into /usr/local, but where does a third party package manager put stuff? It's not OS provided, but it is packages and maintained, so /usr seems valid. is different and has/had other constrains and reasons behind usage). For a long time there's generally been three categories of software to track (OS provided, third party managed, manually compiled/installed), and two different locations to put them (/usr, /usr/local. There's long been problems with this on UNIX systems. Because none of this is confusing at all. And a binary exists at that path either way, it's just a stub by default. pecl uninstall redisįinally you should test and upgrade your projects for PHP 8 compatibility.> Note how despite not coming with the OS, `python3` is still placed in the Apple-only `/usr/bin/` directory. The second thing you can do, if you're updating from an older PHP version which also used pecl to install extension is to reinstall every extension individually. Note that if you're testing installed extensions via the CLI, you don't need to restart nginx, apache or Valet when making changes to ini settings. Now check the ini file: extension= "redis.so" zend_extension= "xdebug.so" opt/homebrew/etc/php/8.1/conf.d/php-memory-limits.ini opt/homebrew/etc/php/8.1/conf.d/ext-opcache.ini, ini files parsed: /opt/homebrew/etc/php/8.1/conf.d/error_log.ini, ini files in: /opt/homebrew/etc/php/8.1/conf.dĪdditional. Loaded Configuration File: /opt/homebrew/etc/php/8.1/php.ini You can run php -ini to know which file is loaded: Configuration File (php.ini) Path: /opt/homebrew/etc/php/8.1 If extensions aren't properly loaded, there are two easy fixes.įirst, make sure the extensions are added in the correct ini file. Make sure all extensions are correctly installed and loaded by checking both your PHP webserver and CLI installs: php -i | grep redis var_dump( extension_loaded( 'redis')) Make sure to restart your web server after installing new packages: sudo nginx -s reload sudo apachectl restart valet restart # Matched packages, channel : # = # Package Stable/(Latest) Local # pdflib 4.1.4 (stable) Creating PDF on the fly with the PDFlib library You can search for other extensions using pecl search: pecl search pdf # Installed packages, channel : # = # Package Version State # redis 5.3.4 stable # xdebug 3.1.1 stable You can run pecl list to see which extensions are installed: pecl list They can be installed like so: pecl install redis You can use valet use to switch between PHP versions: valet use use # Extensions If you're using Laravel Valet, you should do the following steps to upgrade it: composer global update On Twitter or subscribe to my newsletter: If you want to stay up to date about what's happening on this blog, you can follow me Noticed a tpyo? You can submit a PR to fix it.
0 Comments
Leave a Reply. |
Details
AuthorWrite something about yourself. No need to be fancy, just an overview. ArchivesCategories |