Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 28 Aug 2012 00:20:16 +0200
From:      olli hauer <ohauer@gmx.de>
To:        FreeBSD Ports <ports@FreeBSD.org>
Cc:        Baptiste Daroussin <bapt@FreeBSD.org>
Subject:   Re: PKG_NG: pkg deinstall fails with "argument list too long"
Message-ID:  <503BF2A0.5030800@gmx.de>
In-Reply-To: <20120827215334.GE64447@ithaqua.etoilebsd.net>
References:  <503BB682.5070108@freebsd.org> <503BD703.2020001@gmx.de> <20120827212331.GD64447@ithaqua.etoilebsd.net> <503BEA1A.40501@gmx.de> <20120827215334.GE64447@ithaqua.etoilebsd.net>

next in thread | previous in thread | raw e-mail | index | archive | help
On 2012-08-27 23:53, Baptiste Daroussin wrote:
> On Mon, Aug 27, 2012 at 11:43:54PM +0200, olli hauer wrote:
>> On 2012-08-27 23:23, Baptiste Daroussin wrote:
>>> On Mon, Aug 27, 2012 at 10:22:27PM +0200, olli hauer wrote:
>>>> On 2012-08-27 20:03, Stefan Esser wrote:
>>>>> PKG_NG seems to have introduced a limit on the size of ports that can be
>>>>> deinstalled:
>>>>>
>>>>> # cd /usr/ports/math/lapack
>>>>> #  make deinstall
>>>>> ===>  Deinstalling for math/lapack
>>>>> ===>   Deinstalling lapack-3.4.0_2
>>>>> The following packages will be deinstalled:
>>>>>
>>>>>         lapack-3.4.0_2
>>>>>
>>>>> The deinstallation will free 28 MB
>>>>> Deinstalling lapack-3.4.0_2...lapack-3.4.0_2 is required by:
>>>>> qrupdate-1.1.1, deleting anyway
>>>>> pkg: Cannot run script(DEINSTALL): Argument list too long
>>>>> *** [deinstall] Error code 3
>>>>>
>>>>> This is on an up-to-date -CURRENT with freshly fetched ports and
>>>>> pkg-1.0.r6_1 and WITH_PKGNG=yes in /etc/make.conf.
>>>>>
>>>>> Regards, STefan
>>>>
>>>> One limitation I found was if the port has a really long pkg-plist
>>>> the `pkg repo' command times are going to the roof.
>>>>
>>>> For example `pkg repo' a folder with metasploit.txz only takes
>>>> in a ramdisk and everything else on SSD ~80+ seconds.
>>>> Extracting the packages takes ~3s. in RAM or on SSD (pkgng issue #322).
>>>>
>>>> _______________________________________________
>>>> freebsd-ports@freebsd.org mailing list
>>>> http://lists.freebsd.org/mailman/listinfo/freebsd-ports
>>>> To unsubscribe, send any mail to "freebsd-ports-unsubscribe@freebsd.org"
>>>
>>> Can you try changing:
>>> https://github.com/pkgng/pkgng/blob/master/libpkg/pkg_manifest.c#L395 to:
>>> pkg_addfile(pkg, sbuf_get(tmp), pkg_sum, false);
>>>
>>> ?
>>>
>>
>> will do,
>>
>> could you please provide a diff
>>
>> fetch 'https://github.com/pkgng/pkgng/blob/master/libpkg/pkg_manifest.c#L395'
>> gives only glibber and I don't want to enable javascrit to grab a simple patch ...
>>
>>
>> --
>> Regards,
>> olli
> 
> sure: http://people.freebsd.org/~bapt/patch-no-test-duplicate-from-manifest
> just add it to you files/ directory
> 

Thanks, that patch makes really a difference

Without the metasploit package
> time pkg repo -f 8.3-amd64
Generating repo.sqlite in 8.3-amd64: done!
4.699u 0.166s 0:00.85 570.5%    127+1407k 0+6io 0pf+0w

Now with
> time pkg repo -f 8.3-amd64
Generating repo.sqlite in 8.3-amd64: done!
10.651u 2.937s 0:09.22 147.2%   127+1411k 0+11io 0pf+0w
(before 70-80s. longer)


Even the install time goes down 50%
> time pkg install -y metasploit
Updating repository catalogue
Repository catalogue is up-to-date, no need to fetch fresh copy
The following packages will be installed:

        Installing metasploit: 4.1.0

The installation will require 214 MB more space

0 B to be downloaded
Checking integrity... done
Installing metasploit-4.1.0... done
21.796u 10.164s 0:34.44 92.7%   127+1408k 180+1183io 0pf+0w


> time pkg delete -y metasploit
The following packages will be deinstalled:

        metasploit-4.1.0

The deinstallation will free 214 MB
Deinstalling metasploit-4.1.0...pkg: rmdir(/usr/local/share/metasploit/): Directory not empty
 done
5.767u 2.294s 0:08.19 98.2%     128+1414k 2+680io 0pf+0w


This looks really better, please close "pkgng issue #322"

--
Thanks,
olli



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?503BF2A0.5030800>