Linux - SoftwareThis forum is for Software issues.
Having a problem installing a new program? Want to know which application is best for the job? Post your question in this forum.
Notices
Welcome to LinuxQuestions.org, a friendly and active Linux Community.
You are currently viewing LQ as a guest. By joining our community you will have the ability to post topics, receive our newsletter, use the advanced search, subscribe to threads and access many other special features. Registration is quick, simple and absolutely free. Join our community today!
Note that registered members see fewer ads, and ContentLink is completely disabled once you log in.
If you have any problems with the registration process or your account login, please contact us. If you need to reset your password, click here.
Having a problem logging in? Please visit this page to clear all LQ-related cookies.
Get a virtual cloud desktop with the Linux distro that you want in less than five minutes with Shells! With over 10 pre-installed distros to choose from, the worry-free installation life is here! Whether you are a digital nomad or just looking for flexibility, Shells can put your Linux machine on the device that you want to use.
Exclusive for LQ members, get up to 45% off per month. Click here for more info.
I have a weird problem. I can utilize my full bandwidth only if I keep 3-4 downloads running simultaneously. Therefore I want emerge to download 3-4 pacakges simultaneously. Anyway here is my question in a simple form.
How do I force emerge to fetch a particular package without caring about its dependencies? I tried emerge -f =<package name> but that doesn't help. It still tries to download the dependencies. As a result it gets stuck on waiting for lock on <package-name> where <package-name> is being downloaded.
I don't know about setting up serial downloads, which is probably what you are looking for. However, it seems that your problem is that you can't actually use your bandwidth at all unless you are downloading several files at once, which is just wierd.
Anyway, another option.
Run emerge -pv <package-name> to see the dependencies. Then, open up 4 terminal and enter a dependency in each terminal:
emerge -f foo1
emerge -f foo2
emerge -f foo3
emerge package-name
And then hit enter in each one and watch the 4 dependencies download simultaneously. You could even script it.
As I mentioned in the previous post, I have already tried that but it gets stuck on the Waiting for lock on ..... thing. Here is a sample output of the process
root@mndar[~]# emerge -p azureus-bin
These are the packages that I would merge, in order:
Calculating dependencies ...done!
[ebuild N ] dev-java/antlr-2.7.3
[ebuild N ] dev-java/ant-tasks-1.6.2-r9
[ebuild N ] dev-java/ant-1.6.2-r6
[ebuild N ] dev-java/commons-lang-2.0-r1
[ebuild N ] dev-java/commons-cli-1.0-r4
[ebuild N ] net-libs/linc-1.0.3
[ebuild N ] dev-java/systray4j-2.4
[ebuild N ] net-p2p/azureus-bin-2.1.0.4
root@mndar[~]# emerge -f =dev-java/commons-cli-1.0-r4
Calculating dependencies ...done!
>>> emerge (1 of 5) dev-java/antlr-2.7.3 to /
waiting for lock on /usr/portage/distfiles/.locks/antlr-2.7.3.tar.gz.portage_lockfile
where antlr-2.7.3.tar.gz is currently being downloaded
Is this an NFS mounted directory? It seems a bit odd it's waiting for the lock and just sits there. You can clean out your distfiles directory, this may 'free up' the problem (possibly from a previous downloading error?).
Its my hard drive itself.
I tested the emerge -f =<package-name> on different packages having many dependencies and I noticed that it doesn't always get stuck on waiting for lock..., sometimes it downloads the file. I tried clearing /usr/portage/distfiles and fetching the same files again but it still got stuck on waiting for lock....
Right now I am refraining for doing emerge sync for the reason that I download the latest portage snapshot on the 21st and am trying to stick to that.
I guess emerge uses wget to fetch files. Is it possible to tell wget to make multiple simultaneous connections ?
Is there some other download utility available that can make multiple simultaneous connections to accelerate the download ?
I found one, prozilla. Is there any method by which I can use this with emerge. Presently I start the download with emerge -f =<package-name> check the URL there, copy it then download the file using prozilla and then move the file to /usr/portage/distfiles. Phew!!
I do recall that you can set your download preference tool in make.conf. Right now I can't find it, but will search a bit. (At work I can't easily check the make.conf man page).
Cool, found it (putty rocks):
The FETCHCOMMAND option in your make.conf file defines what tool you use to download with. So, using something other than wget as an example (grabbed this from google):
#FETCHCOMMAND="/usr/bin/lukemftp -s -a -o \${DISTDIR}/\${FILE} \${URI}"
And here's a wget example:
#FETCHCOMMAND="/usr/bin/wget -t 5 --passive-ftp --limit-rate=200k \${URI} -P \${DISTDIR}"
And of course, Prozilla:
#FETCHCOMMAND='/usr/bin/proz --no-getch -s ${URI} -P ${DISTDIR}'
LinuxQuestions.org is looking for people interested in writing
Editorials, Articles, Reviews, and more. If you'd like to contribute
content, let us know.