You are not logged in.

#1 2006-11-12 22:38:59

antenna
Member
From: Australia
Registered: 2006-10-14
Posts: 30

Basic question regarding -U and dependencies.

Okay, I may be completely off on this one.

Say I try to install Blender, which I built with makepkg, so I do:

pacman -U blender-2.42a-1.1.pkg.tar.gz

 

But I get:

error: unsatisfied dependencies:
  blender: requires openexr
  blender: requires ffmpeg

So I install these with:

pacman -S openexr ffmpeg

Well now that's great, and if I do:

pacman -Qe

Then only Blender will show up in the list and not the other two packages which is all good.  But then if I want to later remove Blender:

pacman -Rcns blender

Targets: blender 

Do you want to remove these packages? [Y/n]

Then the other packages will not get removed and will then show up in a pacman -Qe even though I actually wanted them as dependencies really and to be removed with Blender.  I gather that had I done pacman -S with Blender in the first place then these would be removed along with Blender?  Is there any way to force this situation with a -U or something?  Maybe I should be using a local repo?  I tend to be building a lot of packages being on 64 bit so maybe this is the way to go anyway to avoid installing dependencies manually and such?

Maybe I got this all wrong, but any help would be appreciated.

Offline

#2 2006-11-13 08:24:58

chrismortimore
Member
From: Edinburgh, UK
Registered: 2006-07-15
Posts: 655

Re: Basic question regarding -U and dependencies.

A local repo (I found at least) is the easiest way to install self-made packages.  My packages live in /var/local/pacman/, and I build a custom.db.tar.gz file using this command:

gensync /var/local/pacman/ /var/local/pacman/custom.db.tar.gz
pacman -Sy --config /etc/pacman.d/custom

This builds the .db.tar.gz file, and tells pacman to update my "custom" repo (so I don't have to update all repos every time I build a new package).  To get this last bit to work, you should set pacman up like so:
In /etc/pacman.conf, add this

[custom]
Include = /etc/pacman.d/custom

And in /etc/pacman.d/custom, add this

[custom]
Server = file:///var/local/pacman

If you have a setup like this, then you just install packages using the good ol' "pacman -S [package]", instead of using -A or -U.


Desktop: AMD Athlon64 3800+ Venice Core, 2GB PC3200, 2x160GB Maxtor DiamondMax 10, 2x320GB WD Caviar RE, Nvidia 6600GT 256MB
Laptop: Intel Pentium M, 512MB PC2700, 60GB IBM TravelStar, Nvidia 5200Go 64MB

Offline

#3 2006-11-13 12:32:32

wain
Member
From: France
Registered: 2005-05-01
Posts: 289
Website

Re: Basic question regarding -U and dependencies.

antenna wrote:

Okay, I may be completely off on this one.

Say I try to install Blender, which I built with makepkg, so I do:

pacman -U blender-2.42a-1.1.pkg.tar.gz

 

But I get:

error: unsatisfied dependencies:
  blender: requires openexr
  blender: requires ffmpeg

So I install these with:

pacman -S openexr ffmpeg

Well now that's great, and if I do:

pacman -Qe

Then only Blender will show up in the list and not the other two packages which is all good.  But then if I want to later remove Blender:

pacman -Rcns blender

Targets: blender 

Do you want to remove these packages? [Y/n]

Then the other packages will not get removed and will then show up in a pacman -Qe even though I actually wanted them as dependencies really and to be removed with Blender.  I gather that had I done pacman -S with Blender in the first place then these would be removed along with Blender?  Is there any way to force this situation with a -U or something?  Maybe I should be using a local repo?  I tend to be building a lot of packages being on 64 bit so maybe this is the way to go anyway to avoid installing dependencies manually and such?

Maybe I got this all wrong, but any help would be appreciated.

you can build your package with:

makepkg -Si

or

makepkg --sudosync --install

Or just use this to remove blender:

yaourt -Rcs blender

Offline

#4 2006-11-13 12:59:49

antenna
Member
From: Australia
Registered: 2006-10-14
Posts: 30

Re: Basic question regarding -U and dependencies.

chrismortimore wrote:

A local repo (I found at least) is the easiest way to install self-made packages.  My packages live in /var/local/pacman/, and I build a custom.db.tar.gz file using this command:

gensync /var/local/pacman/ /var/local/pacman/custom.db.tar.gz
pacman -Sy --config /etc/pacman.d/custom

This builds the .db.tar.gz file, and tells pacman to update my "custom" repo (so I don't have to update all repos every time I build a new package).  To get this last bit to work, you should set pacman up like so:
In /etc/pacman.conf, add this

[custom]
Include = /etc/pacman.d/custom

And in /etc/pacman.d/custom, add this

[custom]
Server = file:///var/local/pacman

If you have a setup like this, then you just install packages using the good ol' "pacman -S [package]", instead of using -A or -U.

Okay, great thanks.  I think I will go ahead and do this later on, doesn't seem too tricky and should be easier to manage.

wain wrote:

you can build your package with:

makepkg -Si

or

makepkg --sudosync --install

Or just use this to remove blender:

yaourt -Rcs blender

Ah yes, I forgot about -s, though I have used that often. 

Sometimes I have to install the dependencies with -U though so I suppose this is the same situation, so maybe --builddeps could help somehow, I don't know.

Also, I used to use yaourt often but i'm using 64 bit now and i'm not sure if anything changes with regard to this and the AUR so I haven't tried it yet.  Yeah i'm new.. smile

Offline

#5 2006-11-13 16:27:52

codemac
Member
From: Cliche Tech Place
Registered: 2005-05-13
Posts: 782
Website

Re: Basic question regarding -U and dependencies.

Would having

pacman -Us /the/package.pkg.tar.gz

be helpful?  I think it would smile

It would remove then install with synchronized dependencies.

Offline

Board footer

Powered by FluxBB