PHP Composer "require" OR condition with version in future - yii2

I need to use a bugfix which has not been released yet. Can I use something like:
"bower-asset/yii2-pjax": "2.0.6 | dev-master#18a9183d578d81fb9dbb1c604daba48815c3ebd5 as 2.0.5"
or
"bower-asset/yii2-pjax": "2.0.6 | dev-master as 2.0.5"
in my composer.json? Where 2.0.6 is the stable version in future and dev-master#hash is the commit including the bugfix, now available in remote repo (#master).

While trying to install this package, I discovered that it has a dependency (thanks to lichunqiang).
Here is how to install the dependency and the package:
composer require "fxp/composer-asset-plugin:~1.1.1"
composer require "bower-asset/yii2-pjax:dev-master"
For some reason, composer require "bower-asset/yii2-pjax:2.0.6" does not work, it seems that composer-asset-plugin, the Composer plugin which is used to install the Bower asset does not find any corresponding version.
The current version of Composer is broken, it returns this error:
[ErrorException]
Illegal offset type in isset or empty
You can get back to the old version by rolling back:
composer self-update --rollback

Related

When upgrading Angular 6to 8, I get incompatible peer dependency (using ng update #angular/core)

I'm using this command ng update #angular/cli #angular/corefor to update angular version from 6 to 8 but it showing this bellow problem.
Package "#nguniversal/module-map-ngfactory-loader" has an incompatible peer dependency to "#angular/core" (requires ">=7.0.0-rc.0 <8.0.0||>=6.0.0-rc.0 <7.0.0", would install "8.2.5").
Package "#nguniversal/module-map-ngfactory-loader" has an incompatible peer dependency to "#angular/common" (requires ">=7.0.0-rc.0 <8.0.0||>=6.0.0-rc.0 <7.0.0", would install "8.2.5").
Package "#nguniversal/module-map-ngfactory-loader" has an incompatible peer dependency to "#angular/platform-server" (requires ">=7.0.0-rc.0 <8.0.0||>=6.0.0-rc.0 <7.0.0", would install "8.2.5").
Incompatible peer dependencies found. See above.
When upgrading from Angular 8.2 to 10, I received a similar error. Running:
npm uninstall #nguniversal/module-map-ngfactory-loader
and then ng update worked for me.
first, check the dependencies one by one from the last one and use bellow code fore example :
npm uninstall #angular/http
And again use:
ng update #angular/cli #angular/core
Now you have to check what is your dependencies then one by one remove and after all, you will see your code will be updated.
then from last dependencies, you have to install your new version of your dependencies.

Chisel building riscv-gnu-toolchain for Sodor

I want to build 'riscv-gnu-toolchain' for Sodor Project available in :
ucb-bar/riscv-sodor
I failed to clone it as suggested by its readMe using :
'git clone git#github.com:riscv/riscv-gnu-toolchain.git'
I also tried to use the latest version of the repository, and it generates the following warning :
'configure: WARNING: unrecognized options: --disable-float, --with-xlen'
Which suggests that this is not the right version. I tried to use the version in ROCKET CHIP, but I failed also.
Which version of 'riscv-gnu-toolchain' I can use to compile Sodor's tests?
Thank you Chris. I found a version that work with Sodor. Here are the commands that can be used to checkout this version and build it:
git clone https://github.com/riscv/riscv-gnu-toolchain
cd riscv-gnu-toolchain
git submodule update --init --recursive
git checkout 06c957ab
mkdir build
cd build
../configure --prefix=${INSTALL_LOC} --disable-float --disable-atomic --with-xlen=32 --with-arch=RV32I
make
Sodor currently only supports the Privileged Spec v1.7, so you need to use an older version of riscv-gnu-toolchain. Older versions of the toolchain will recognize the options --disable-float and --with-xlen. It appears that there are no tags on riscv-gnu-toolchain, so you'll have to do some detective work to find the correct commit.

Can I bypass installing glibc.i686 as a dependency when I already have the x86_64 version?

I'm trying to install Atom from the official RPM provided. libXss.so.1 is a dependency and tries to install the 32-bit version of glibc when I already have the 64-bit version. It then conflicts with the 2.23.1-7 older version of glibc that I already have.
So where do I go from here? I'm guessing that there is a bugfix somewhere in libXss. libXss tries to install i686 arch for all it's dependencies.
I'm using Fedora 24 x86_64
Terminal Output
sudo rpm -ivh atom.x86_64.rpm
error: Failed dependencies:
libXss.so.1 is needed by atom-1.13.0-0.1.x86_64
sudo dnf install libXss.so.1
Error: Transaction check error:
file /usr/share/doc/glibc/NEWS from install of glibc-2.23.1-11.fc24.i686 conflicts with file from package glibc-2.23.1-7.fc24.x86_64
sudo dnf install glibc-2.23.1-11.fc.24.x86_64
Package glibc-2.23.1-11.fc24.x86_64 is already installed, skipping.
Dependencies resolved.
Nothing to do.
Complete!
Secondary/Unimportant Question
Do I need glibc-2.23.1-7.fc24.x86_64 when I already have glibc-2.23.1-11.fc24.x86_64? I see that I have both installed yet I have no conflict problems.
edit
I gave up and decided to install from the copr repo
sudo dnf copr enable mosquito/atom
sudo dnf install atom
Error: Transaction check error:
file /usr/lib64/libkadm5clnt_mit.so.10.0 from install of libkadm5-1.14.4-4.fc24.x86_64 conflicts with file from package krb5-libs-1.14.1-6.fc24.x86_64
file /usr/lib64/libkadm5srv_mit.so.10.0 from install of libkadm5-1.14.4-4.fc24.x86_64 conflicts with file from package krb5-libs-1.14.1-6.fc24.x86_64
What is going on?
Can I bypass installing glibc.i686 as a dependency when I already have the x86_64 version?
Not if you need to install 32-bit software — you'll need the 32-bit libs for that. 64-bit libraries aren't supersets of the 32-bit ones.
I'm trying to install Atom from the official RPM provided. libXss.so.1 is a dependency and tries to install the 32-bit version of glibc when I already have the 64-bit version. It then conflicts with the 2.23.1-7 older version of glibc that I already have.
This is a frequent problem. Installing 32-bit versions of packages without updating to the latest versions of the main 64-bit packages is not supported. Upgrade first, then install.
Do I need glibc-2.23.1-7.fc24.x86_64 when I already have glibc-2.23.1-11.fc24.x86_64? I see that I have both installed yet I have no conflict problems.
This can happen if there's an interrupted upgrade transaction. You should be able to dnf remove glibc-2.23.1-7.fc24.x86_64 safely. If that gives you errors, time to stop and make sure nothing else is wrong. Or, you can really just ignore it — next time a new glibc update comes out, it should replace both.
I gave up and decided to install from the copr repo
The errors you see here are actually the same root problem as trying to install 32-bit packages without updating first. RPMs can share files, as long as they are completely identical. That's true in matched versions of the various kerberos packages, but not true if there's a mismatch, and the dependency information doesn't handle this. So, again upgrade to latest packages before installing new ones.

error in installing ruby-devel using yum?

Hello I try to install ruby gem json but it gives following error
`Building native extensions. This could take a while...
ERROR: Error installing json:
ERROR: Failed to build gem native extension.
mkmf.rb can't find header files for ruby at /usr/share/include/ruby.h
Gem files will remain installed in /home/jenkins/.gem/ruby/gems/json-2.0.2 for inspection.
Results logged to /home/jenkins/.gem/ruby/gems/json-2.0.2/ext/json/ext/generator/gem_make.out`
I looked up similar post and was directed to install ruby-devel. But thats also given me a hard time.
yum install ruby-devel
Loaded plugins: addreleaserel, priorities, product-id, search-disabled-repos, subscription-manager
This system is not registered to Red Hat Subscription Management. You can use subscription-manager to register.
Resolving Dependencies
--> Running transaction check
---> Package ruby-devel.x86_64 0:2.0.0.598-25.el7_1 will be installed
--> Processing Dependency: ruby(x86-64) = 2.0.0.598-25.el7_1 for package: ruby-devel-2.0.0.598-25.el7_1.x86_64
--> Finished Dependency Resolution
Error: Package: ruby-devel-2.0.0.598-25.el7_1.x86_64 (RHN-rhel-x86_64-server-optional-7-1-locked)
Requires: ruby(x86-64) = 2.0.0.598-25.el7_1
Installed: ruby-2.0.0.648-29.el7.x86_64 (#RHN-rhel-x86_64-server-7-latest)
ruby(x86-64) = 2.0.0.648-29.el7
Available: ruby-2.0.0.353-20.el7.x86_64 (RHN-rhel-x86_64-server-7)
ruby(x86-64) = 2.0.0.353-20.el7
Available: ruby-2.0.0.353-22.el7_0.x86_64 (RHN-rhel-x86_64-server-7)
ruby(x86-64) = 2.0.0.353-22.el7_0
Available: ruby-2.0.0.598-24.el7.x86_64 (RHN-rhel-x86_64-server-7)
ruby(x86-64) = 2.0.0.598-24.el7
Available: ruby-2.0.0.598-25.el7_1.x86_64 (RHN-rhel-x86_64-server-7-1-locked)
ruby(x86-64) = 2.0.0.598-25.el7_1
You could try using --skip-broken to work around the problem
You could try running: rpm -Va --nofiles --nodigest
Can anyone suggest me steps to install ruby-devel using yum?please
Something seems off about your configured repositories.
From your error message, YUM is attempting to install ruby-devel.x86_64 0:2.0.0.598-25.el7_1 from the "RHN-rhel-x86_64-server-optional-7-1-locked" channel, but you currently have ruby-2.0.0.648-29.el7.x86_64 installed from the "#RHN-rhel-x86_64-server-7-latest" channel which will not satisfy the dependency as the release versions do not match.
For YUM to complete the transaction you posted, it would have to install an older version of the RedHat ruby package and I don't think it wants to do that without being explicitly told.
There are a couple options I can think of, depending on how you want to resolve this. My first suggestion is what I would do if I were managing this server, which is to straighten out the repository configuration and discover why yum install ruby-devel is attempting to install an older package (it might have something to do with that locked channel).
The other option is to install that ruby-devel package by any means necessary which may not be good for your RedHat subscription or could break things. You would first replace the installed version of ruby with the older one that matches ruby-devel, then attempt to install ruby-devel:
yum downgrade ruby-2.0.0.598-25
yum install ruby-devel-2.0.0.598-25
I do not have a RedHat machine with a subscription so I would not be able to test if this second suggestion would even work, use at your own risk. I would also recommend again you attempt the first suggestion of fixing your repositories or figure out why one of the channels is locked as that method would be safer and you could get support from RedHat if needed.
Hope that helps

Composer install: your requirements could not be resolved to an installable set of packages

Trying to install Bolt v2.2.4 with the following commands:
git clone git://github.com/bolt/bolt.git bolt
cd bolt
git checkout v2.2.4
composer install
Then I get the following error:
$ composer install
Loading composer repositories with package information
Installing dependencies (including require-dev)
Your requirements could not be resolved to an installable set of packages.
Problem 1
- Installation request for m6web/symfony2-coding-standard dev-master#dev -> satisfiable by m6web/symfony2-coding-standard[dev-master].
- m6web/symfony2-coding-standard dev-master requires squizlabs/php_codesniffer ~1.0 -> no matching package found.
Potential causes:
- A typo in the package name
- The package is not available in a stable-enough version according to your minimum-stability setting
see <https://groups.google.com/d/topic/composer-dev/_g3ASeIFlrc/discussion> for more details.
Read <https://getcomposer.org/doc/articles/troubleshooting.md> for further common problems.
I just ran into the same issue under bolt 2.1.9
I 'fixed' it for me for the moment by changing 1.5.* to ~2 for squizlabs/php_codesniffer in composer.json
Are you on IPv6 per chance? If so, do a composer self-update.