Difference between revisions of "Talk:Pacman/Tips and tricks"

From ArchWiki
Jump to navigation Jump to search
 
(36 intermediate revisions by 8 users not shown)
Line 1: Line 1:
{{Note|'''Moderation''' — Any pacman frontend that does [[partial upgrade]]s ''without explicit user intervention'' (i.e, specifying {{ic|-Sy}} on the command line), has no place on this page or anywhere else on ArchWiki. No exceptions. -- [[User:Alad|Alad]] ([[User talk:Alad|talk]]) 14:03, 20 May 2017 (UTC)
 
}}
 
 
 
== pacman-optimize on SSD ==
 
== pacman-optimize on SSD ==
  
Line 41: Line 38:
 
: Thanks for the background information. I was not aware of the bug report and now clearly understand why you altered the section the way you did. I hope the [https://wiki.archlinux.org/index.php?title=Pacman/Tips_and_tricks&diff=475548&oldid=475495 recent change] is sufficient for you. Since every misbehaving program might leave a system unbootable if it plays a role in the boot process, it should be unnecessary to add this redundant information. However the problem you described is still severe and I hope you agree that the recent edits made to the article do the topic justice. Thanks for clarifying the topic and adding this to the article and sorry for reverting your edits at first. -- [[User:Edh|Edh]] ([[User talk:Edh|talk]]) 21:07, 30 April 2017 (UTC)
 
: Thanks for the background information. I was not aware of the bug report and now clearly understand why you altered the section the way you did. I hope the [https://wiki.archlinux.org/index.php?title=Pacman/Tips_and_tricks&diff=475548&oldid=475495 recent change] is sufficient for you. Since every misbehaving program might leave a system unbootable if it plays a role in the boot process, it should be unnecessary to add this redundant information. However the problem you described is still severe and I hope you agree that the recent edits made to the article do the topic justice. Thanks for clarifying the topic and adding this to the article and sorry for reverting your edits at first. -- [[User:Edh|Edh]] ([[User talk:Edh|talk]]) 21:07, 30 April 2017 (UTC)
  
== How to check if a pacman frontend is doing partial upgrades? ==
+
== local repository database extension/compression recomendation ==
 
 
How to know that a pacman frontend like {{ic|pamac}} or {{ic|octopi}} is doing partial upgrades? Because I didn't know they were doing it. So how can I check?
 
 
 
I installed {{ic|kulu}} finally but {{ic|octopi}} has a {{ic|octopi-notifier}} an can be used as notifier only for example. So I should be able to link {{ic|octopi-notifier}} as it is harmless for the system?
 
 
 
[[User:Noraj|Noraj]] ([[User talk:Noraj|talk]]) 17:10, 20 May 2017 (UTC)
 
 
 
:Not much you can do besides check the code, or find out that the sync db is in an inconsistent state after the partial upgrade was done (as in any .so bump causing programs to fail). For octopi there's this [https://github.com/aarnt/octopi/issues/134 github issue] which explains how the program does partial upgrades by design. Unsurprisingly, octopi-notifier does the exact same thing. [https://github.com/aarnt/octopi/blob/master/notifier/octopi-notifier/mainwindow.cpp#L184] -- [[User:Alad|Alad]] ([[User talk:Alad|talk]]) 18:39, 20 May 2017 (UTC)
 
  
== How and when exactly does pamac do partial upgrades? ==
+
If you opt to not compress a pacman database, the files database can become very large, 10x larger than a gzipped one in my case, which cause issues when trying to update the local pacman files db (pacman -Fy) since apparently there is a max (expected) size. Should we include a warning about uncompressed databases?
  
[https://github.com/manjaro/pamac/search?utf8=%E2%9C%93&q=start_refresh&type= This link] doesn't really explain much (sorry if I'm missing out on something obvious). I don't want to keep using it if there's an obvious problem, but so far I haven't encountered any problems that would come up due to partial upgrades.
+
{{unsigned|00:35, 29 January 2019‎|JoshH100}}
  
I've tried searching for some information on this but I didn't find much. The only real answer I found was [https://github.com/manjaro/pamac/issues/248 this], which says that they always do full updates.
+
== Use a new nginx.conf for [[Pacman/Tips_and_tricks#Dynamic_reverse_proxy_cache_using_nginx|Dynamic reverse proxy cache using nginx]] ==
  
So I'm kind of confused about how pamac does partial upgrades. Is there some specific condition in which it does them, or does it do them constantly, or does it just not do them? [[User:Tomaszal|Tomaszal]] ([[User talk:Tomaszal|talk]]) 23:04, 25 July 2017 (UTC)
+
I propose to replace the [https://gist.github.com/anonymous/97ec4148f643de925e433bed3dc7ee7d current nginx.conf] with an [https://github.com/nastasie-octavian/nginx_pacman_cache_config/blob/master/nginx.conf improved nginx.conf] and update the section. The new config doesn't make the upstream servers directly available on the network and it allows having mirrors with different relative paths to package files. It also removes directives that are not needed and has some other minor cleanups. I've been using a similar config for a few months now without any problems, so I believe it should be fine. [[User:Noctavian|Noctavian]] ([[User talk:Noctavian|talk]]) 16:05, 28 February 2019 (UTC)
  
:If you do {{ic|pacman -Sy}} and then {{ic|pacman -S ''package''}}, that's a partial upgrade. The function {{ic|start_refresh}} is equivalent to {{ic|pacman -Sy}} and the problem is that it is setting up the user for a partial upgrade the next time he installs a package, since that function is run just to check if there are updates. That's my analysis at least.  -- [[User:Rdeckard|Rdeckard]] ([[User_talk:Rdeckard|talk]]) 12:23, 26 July 2017 (UTC)
+
:What do you mean by "The new config doesn't make the upstream servers directly available on the network"? -- [[User:Lahwaacz|Lahwaacz]] ([[User talk:Lahwaacz|talk]]) 20:54, 28 February 2019 (UTC)
  
::Okay, thanks for the explanation. Is there a reason for {{ic|pamac}} to do things that way though? Because otherwise it's a really great graphical front-end and I couldn't find anything that compares to it (except for maybe {{ic|octopi}}, but that has the same issue obviously). [[User:Tomaszal|Tomaszal]] ([[User talk:Tomaszal|talk]]) 12:50, 26 July 2017 (UTC)
+
:: In the new config the server blocks for the upstream mirrors are set to listen to 127.0.0.1:800X. Only the computer that is running the nginx cache can send requests to 127.0.0.1. Other computers on the network can't. The current config exposes the upstream mirrors to the network, a nmap scan will show the 8080 port of the cache as open and the ports 8001, 8002, 8003 of the upstream mirrors as open. One can browse to cache.domain.example:8002 and have direct access to whatever package mirror website is used by the cache bypassing the cache config order and locations. The upstream mirrors don't need to be available to the entire network for the cache to work; they only need to be available to the computer that is hosting the nginx cache. I believe ports should not be left open on the network if they don't have to be open. [[User:Noctavian|Noctavian]] ([[User talk:Noctavian|talk]]) 08:37, 1 March 2019 (UTC)
  
:::It's not a problem in Manjaro since that distribution updates their repositories approximately once a month. Since Manjaro is the target audience of the software, my guess is that the authors didn't bother with a clever mechanism as {{ic|checkupdates}} did.
+
: I have written a draft for the section update on my [[User:Noctavian|user page]]. I made some small changes to the config file since last week, added comments and mirror examples and turned off IPv6 address resolution to prevent some errors that can happen sometimes. Suggestions.are welcome. I haven't seen objections to my proposal, so I'm going to wait a few more days for feedback and then update the section on the main page with my draft and the new nginx.conf file if that's ok. [[User:Noctavian|Noctavian]] ([[User talk:Noctavian|talk]]) 11:43, 8 March 2019 (UTC)
:::However, as they seem oblivious to the implications for Arch users (or the general definition of "partial update"), you might want to add something to the linked bug report. -- [[User:Alad|Alad]] ([[User talk:Alad|talk]]) 13:06, 26 July 2017 (UTC)
 
  
::::That would explain why I didn't have any issues, as I only used {{ic|pamac}} on Manjaro. I was planning on using it on Arch, but I guess I'll hold off from doing that for now.
+
::Feel free to go ahead. -- [[User:Lahwaacz|Lahwaacz]] ([[User talk:Lahwaacz|talk]]) 17:11, 16 March 2019 (UTC)
::::Thanks for your comments on this. I expressed my thoughts about this on the same [https://github.com/manjaro/pamac/issues/248 bug report]. Hopefully the developers won't ignore it and do something about the issue. [[User:Tomaszal|Tomaszal]] ([[User talk:Tomaszal|talk]]) 16:21, 26 July 2017 (UTC)
 

Latest revision as of 17:11, 16 March 2019

pacman-optimize on SSD

[Moved from Talk:Improve pacman performance -- Alad (talk) 05:05, 16 October 2015 (UTC)]

pacman-optimize only tries to reduce fragmentation of the files right? If that is the case perhaps we should include a note that this probably won't help much on an SSD. —This unsigned comment is by F4hy (talk) 18:27, 29 March 2013‎. Please sign your posts with ~~~~!

pacman-optimize

[Moved from Talk:Improve pacman performance -- Alad (talk) 05:05, 16 October 2015 (UTC)]

Looks like the systemd-timer-pacman-optimize-git package is no longer maintained. [1]

Should the wiki no longer recommend this package? -- I'm guessing it shouldn't.

Also, is pacman-optimize less important than in the past? -- I am genuinely unsure about this.

--Matthew02 (talk) 05:40, 2 March 2015 (UTC)

The maintenance of systemd-timer-pacman-optimize-gitAUR has nothing to do with that of pacman itself, it is packaged separately and even in the AUR. Anyway, I'd keep the section until pacman-optimize is removed from pacman.
The reasons why it is not very important nowadays are improvements in pacman itself (mentioned in the ML post linked above), increased speeds of HDDs and the advent of SSDs.
-- Lahwaacz (talk) 22:18, 2 March 2015 (UTC)

Leading slash

Pacman/Tips_and_tricks#aria2 doesn't work without leading slash, i.e. -d / turning file names to //var/cache/.... The article mentions this, but it doesn't mention why. -- Alad (talk) 05:28, 16 October 2015 (UTC)

You would have to go way back to track this. It seems to have worked without -d / even in 2006: [2], [3]. I guess that simply nobody asked the right question... -- Lahwaacz (talk) 12:30, 16 October 2015 (UTC)
Oops, it does not work without -d /. Then the problem must be on aria's side, which expects a file name for the -o option, which is then catenated with -d into the full path. Assuming that -d defaults to the cwd, /var/cache/ would appear twice in the result. -- Lahwaacz (talk) 12:43, 16 October 2015 (UTC)

pacman cache

I still think we should warn people not to symlink /var or anything under it. It leaves the whole system unusable because if the cache disappears during a pacman transaction, you're left with missing /usr/lib libraries, and nothing works, including pacman itself. This is a serious enough problem that it can take hours to figure out how to recover. If the wiki had mentioned this problem it would have saved me a lot of time and effort, and I'm not the only one who has run in to this. It is not, however, considered a bug. See https://bugs.archlinux.org/task/50298. JimRees (talk) 23:15, 29 April 2017 (UTC)

This revisions says that: [4]. But to make it more clear: [5] -- Rdeckard (talk) 00:13, 30 April 2017 (UTC)
Actually, I undid my change since I think that first change is more accurate (mentioning /var/cache/pacman/pkg and ancestors), so I went back to that but explicitly mentioned /var as an example. -- Rdeckard (talk) 01:11, 30 April 2017 (UTC)
Thanks for the background information. I was not aware of the bug report and now clearly understand why you altered the section the way you did. I hope the recent change is sufficient for you. Since every misbehaving program might leave a system unbootable if it plays a role in the boot process, it should be unnecessary to add this redundant information. However the problem you described is still severe and I hope you agree that the recent edits made to the article do the topic justice. Thanks for clarifying the topic and adding this to the article and sorry for reverting your edits at first. -- Edh (talk) 21:07, 30 April 2017 (UTC)

local repository database extension/compression recomendation

If you opt to not compress a pacman database, the files database can become very large, 10x larger than a gzipped one in my case, which cause issues when trying to update the local pacman files db (pacman -Fy) since apparently there is a max (expected) size. Should we include a warning about uncompressed databases?

—This unsigned comment is by JoshH100 (talk) 00:35, 29 January 2019‎. Please sign your posts with ~~~~!

Use a new nginx.conf for Dynamic reverse proxy cache using nginx

I propose to replace the current nginx.conf with an improved nginx.conf and update the section. The new config doesn't make the upstream servers directly available on the network and it allows having mirrors with different relative paths to package files. It also removes directives that are not needed and has some other minor cleanups. I've been using a similar config for a few months now without any problems, so I believe it should be fine. Noctavian (talk) 16:05, 28 February 2019 (UTC)

What do you mean by "The new config doesn't make the upstream servers directly available on the network"? -- Lahwaacz (talk) 20:54, 28 February 2019 (UTC)
In the new config the server blocks for the upstream mirrors are set to listen to 127.0.0.1:800X. Only the computer that is running the nginx cache can send requests to 127.0.0.1. Other computers on the network can't. The current config exposes the upstream mirrors to the network, a nmap scan will show the 8080 port of the cache as open and the ports 8001, 8002, 8003 of the upstream mirrors as open. One can browse to cache.domain.example:8002 and have direct access to whatever package mirror website is used by the cache bypassing the cache config order and locations. The upstream mirrors don't need to be available to the entire network for the cache to work; they only need to be available to the computer that is hosting the nginx cache. I believe ports should not be left open on the network if they don't have to be open. Noctavian (talk) 08:37, 1 March 2019 (UTC)
I have written a draft for the section update on my user page. I made some small changes to the config file since last week, added comments and mirror examples and turned off IPv6 address resolution to prevent some errors that can happen sometimes. Suggestions.are welcome. I haven't seen objections to my proposal, so I'm going to wait a few more days for feedback and then update the section on the main page with my draft and the new nginx.conf file if that's ok. Noctavian (talk) 11:43, 8 March 2019 (UTC)
Feel free to go ahead. -- Lahwaacz (talk) 17:11, 16 March 2019 (UTC)