Coder Social home page Coder Social logo

npackd / npackd-cpp Goto Github PK

View Code? Open in Web Editor NEW
149.0 12.0 31.0 61.42 MB

Package manager for Microsoft Windows (GUI and command line utility)

Home Page: https://www.npackd.org

License: GNU General Public License v3.0

C++ 78.31% C 19.67% Batchfile 1.13% JavaScript 0.89%
npackd package-manager install uninstall windows

npackd-cpp's Introduction

Build artifacts Coverity License

Npackd

(pronounced "unpacked") is an application store/package manager/marketplace for Windows

Npackd

It helps you to find and install software, keep your system up-to-date and uninstall it if no longer necessary. You can watch this short video to better understand how it works. The process of installing and uninstalling applications is completely automated (silent or unattended installation and un-installation). There is also a command line based version of Npackd which you can install from the command line:

Easy installation of the graphical user interface from the command line (64 bit):

C:\> msiexec.exe /qb- /i https://bit.ly/npackd64-1_26_9

There is also a command line based version of Npackd which you can install from the command line:

C:\> msiexec.exe /qb- /i https://bit.ly/npackdcl32-1_26_9

see What is new in Npackd

News

You can follow the news on Twitter or via the Forum

Main features

  • synchronizes information about installed programs with the control panel "Add or remove software" and MSI package database. Allow uninstallation of those packages.
  • support for proxies (use the internet settings control panel to configure it)
  • password protected pages. This can be used to restrict access to your repository.
  • fast installation and uninstallation without user interaction. A typical application is installed and uninstalled in seconds (downloading the package is the most lengthy operation)
  • dependencies
  • shortcuts in the start menu are automatically created/deleted
  • multiple program versions can be installed side-by-side
  • cryptographic checksum for packages (SHA1 and SHA-256)
  • closes running applications if necessary
  • runs on ReactOS and under Linux/Wine

Statistics

Project Stats

Download statistics: https://tooomm.github.io/github-release-stats/?username=npackd&repository=npackd-cpp

Windows is a registered trademark of Microsoft Corporation in the United States and other countries.

npackd-cpp's People

Contributors

ogretransporter avatar tim-lebedkov avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

npackd-cpp's Issues

Update all

How can I update all installed programs to the latest version at once by comand line?

LibreOffice not updated

My LibreOffice version is 5.3.1.2.
There's now version 5.3.2 but Npackd doesn't realize there's a new version and shows me that there's nothing to update.

Installation does not work when version is specified in the update command.

If the version is specified when executing the update command, the process will be completed with the message "The packages are already up-to-date" regardless of whether the package is installed or not.

Result when Blender64 is not installed

npackdcl update --package Blender64 --versions 2.90 -i

[0%] - Updating packages
The packages are already up-to-date

Feature: Local user

I would like to add a flag to the build to set whether or not the program is looking for the known software. Users without admin privileges can't install/uninstall/modify software like .NET, Java, etc., so it's not necessary to manage that packages. With a second flag I want to set whether the program has to work with admin privileges or whether the local user is sufficient. Instead of build flags I can also add options to npacked. Instead of options it's also possible to detect current privileges (NetUserGetInfo) during program start and configure npacked with the available features. If somebody needs a special program it's still possible to run npacked with admin privileges.

I want to make a repository of ZIP archives available to my colleagues who all have no admin privileges. The programs are all portable and they run without admin rights. NET, Java etc. are managed by our administrator, so I don't need to search and display them.

Maybe it's also useful to add a new flag to packet definition which mark programs without admin privileges. So, depending on existing privileges it's possible to filter the list of available programs.

source of a package

Ie where did it get loaded from. Since I have a mix of public and privatee repo 
that would help cleaning up.

Original issue reported on code.google.com by [email protected] on 14 Jul 2013 at 6:47

Enhancement: PAUSE button

It will be nice to have a PAUSE/RESUME button, especially for a very big 
package updates/installs.
One can invent many use-cases when such a button would be necessary. 

Original issue reported on code.google.com by [email protected] on 14 Sep 2012 at 10:37

software not detected

Hello
I'm testing your software, and I'm having some issues.
Npackd does not detect software that I install outside of Npackd updates.
For example, I installed version 3.0.10 of VLC directly from the VLC site while Npackd did not yet offer this version. Npackd now offers version 3.0.10 but he believes that I am still under version 3.0.8 of VLC.
Do you have a solution ?
Thank you, I find your software very interesting, I test it and I try to understand how it works for 15 days, It has small "bugs" but very interesting.
Thank you again for making such software available to us.
I don't speak English very well, so this is google traslate which translates.
I speak French ++++, español ++++, portugues ++, italiano ++.

need help: transform npackd into a portable app

Hello.

I know this is a bit odd topic, but why not. I am still investigating how difficult that is. In my opinion, npackd is the simplest windows package manager after PortableApps.com. The ultimate goal is: manage any apps istalled in portable apps intallation directory which are not registered in PortableApps.com. The first logical step is to transform npackd into a portable app, and place it into portable apps intallation directory. Don't worry, this will not change the way the original app works, and i will not ask specific feature if not very needed.

I have difficulty recognizing each file/folder used/created by npackd and their role. Can you list them all?

nb: Please keep this thread open until the goal is reached.

Warn me if uninstallation isn't 100% successful

Hi,

Often during uninstallation or upgrade, the package directory isn't removed fully, due to various reasons (e.g. the shell is holding on to a .dll file).

During upgrade, I would then end up with a duplicate directory, e.g this:
image

I'd like the option to try forcefully delete the original directory first so that the new package can be installed in the original directory instead of defaulting to a _2 version.

For pure uninstallation, I think a normal message to inform the user is sufficient.

For upgrade, I think the process should be paused and the user should have a choice of either manually deleting the original directory, or there should be an option for NPackd to proceed and attempt to install the newer package in the original directory anywa.

“purge” or “forcibly uninstall”

What steps will reproduce the problem?
1. Install putty
2. delete its uninstaller file (c:\Program Files\putty\unins000.exe) without 
going through its uninstaller
3. try to reinstall it using npackd

What is the expected output? What do you see instead?
That I would have an option to reinstall/upgrade it in its place even though 
the latest version is marked installed so that I can restore the installation. 
Instead, npackd just gives errors when I try to uninstall it and does not give 
me an option to upgrade it to itself or reinstall or delete the installation 
entry.

What version of the product are you using? On what operating system?
1.18.7 on Windows 8.1 64-bit.

Please provide any additional information below.
I cannot uninstall putty through npackd's UI. I think if I can just mark it as 
not being installed in the first place, npackd would let me install it again. I 
worked around this issue by deleting the C:\Program Files\putty folder.

Original issue reported on code.google.com by ohnobinki on 8 Feb 2014 at 6:52

Clicking Update for a package offers to uninstall unrelated packages

offers to uninstall Blender 64 bit 2.78.3 and Audacity 2.1 when upgrading Putty from 0.67 to 0.69

If I first open npacked, choose Updateable packages, wait for the package list refresh to finish, and then click Update, npackd-1.22.2 decides that updating my package involves uninstalling two unrelated packages. This doesn’t seem to happen if I’ve installed those packages while npackd is open. But if the first action I perform with npackd is to update some package, it’ll want to uninstall the other packages.

In my case, the package I am trying to update seems to be anything. E.g., Putty from 0.67 to 0.69 is able to trigger it. And the packages it chooses to uninstall are Audacity 2.1 and Blender 64 bit 2.78.3 (which both have names starting near the beginning of the alphabet, hmmmm…).

I can’t think of any reason for npackd to want to uninstall these packages. I want to keep them installed. I even installed them through npackd in the first place.

Feature request: offline archive

Hello there. Is it possible to use Npackd to create and keep updated an offline collection of distributives? I mean, I have a USB HDD or something and I attach it to the PC and run something like

ncl download Firefox
ncl update --offline

And to install - "ncl install Firefox --offline"

Another question was already asked, but more voices better :) Please add the global checkboxes to select and export the list of packages in a convenient way.

Deprecated GetVersionEx

https://docs.microsoft.com/en-us/windows/win32/api/sysinfoapi/nf-sysinfoapi-getversionexa

[GetVersionEx may be altered or unavailable for releases after Windows 8.1. Instead, use the Version Helper functions]

With the release of Windows 8.1, the behavior of the GetVersionEx API has changed in the value it will return for the operating system version. The value returned by the GetVersionEx function now depends on how the application is manifested.

Applications not manifested for Windows 8.1 or Windows 10 will return the Windows 8 OS version value (6.2). Once an application is manifested for a given operating system version, GetVersionEx will always return the version that the application is manifested for in future releases. To manifest your applications for Windows 8.1 or Windows 10, refer to Targeting your application for Windows.

This change could cause problems, so I replaced the function in commit 1509f15 (PR #46).

Allow commenting out repositories in the config dialog

Currently there is no way to tell Npackd to ignore an entry in the repository list (other than removing it's line altogether). It would be nice to be able to disable a repository by adding # (or another character) in front of it's entry).

I have a computer without initial network connectivity. To be able to use my local repository (added the file:///... URI to my Rep.xml file), I had to remove the default entries http://npackd.appspot.com/rep/xml?tag=stable/stable64 since the repository update would fail without an internet connection, leaving me with an empty package list. Re-adding the default repos at a later time required manually copying the address from the website. It would be simpler to just comment/uncomment them.

Alternatively the repository update could just throw a warning when some repos are unavailable, and still process repos that can be reached (eg. local)

Multiple destinations

I use npackd for installing specific components of my system from the private repo. Not only software from the internet. I would like to define multiple Installation Directories on Settings Page. Then I would like to specify in XML repo which Installation Directory the package should go to. The default would be let say first one (e.g. "Program Files"). What do you think?

apprep:// url scheme for adding repositories and installing programs

I was thinking about a new URL-scheme for linking to repositories/packages. 
Something along these lines:

apprep://<path-to-repository>[#<package-name>]
as in:
apprep://foobar2000.com/npackd#foobar2000_main

Clicking a link like this should open npackd (or another program supporting the 
apprep scheme), and present a confirmation notice, asking if you want to 
install foobar2000_main and if you trust the foobar2000/npackd repository.

Original issue reported on code.google.com by [email protected] on 10 Feb 2011 at 8:02

Incorrect version generation if they contain leading zeros

If a version number contains a leading zero in any of the parts, it will be stripped when generating a version for a package.

E.g. the newest version of 7-Zip is 18.05 but the generated package version is 18.5. It is confusing and will be even more when/if actual version 18.5 comes.

Zero source files

Type of the package can be either "one-file" or "zip". I believe it would be also good to add "no-files". That would let me create metapackages, which don't install any files, but depend of the other packages. I would like to use it for personal purposes.
For example imagine that I create a package called "Python Programmer Utils". It doesn't download any files, but depends of "Notepad++", "TortoiseGit", "Console", "Python", "py2exe" and "InnoSetup". Now, by providing this package to my colleagues from the community, I could let them prepare the same environment as I use.
Please note that I currently use this kind of metapackages. I just download a dummy file to not let npackd raise an error.

Feature request: Ignore list

Some software packages can update themselves (Opera, Thunderbird, Firefox, 
...). Npackd does not distinguish an updated version from the original. It 
would be helpful to let the user choose which applications to hide (in 
application list of npackd).

Original issue reported on code.google.com by [email protected] on 24 Oct 2012 at 9:31

Feature: Group policy configuration

In most local area networks (companies, universities, schools, etc.) with a domain controller and Windows, computers are configured by group policies. Establishing npacked as a packet manager for Windows in such groups is much more comfortable if a configuration by a group policy is available.

This is pretty easy, because group policies can create registry keys on target machines.

Feature Request: Bookmark/Favorites options

Hi Tim, im new to npackd if i may point a feature that i feel lacking here is a bookmark/favorites option, this person could mark what tools he would like to be setup again, export a config data file and when installing Windows again, import this and they are all at sight to reinstall again.

taskschd.lib is missing

1>wpmutils.obj : error LNK2001: Nicht aufgelöstes externes Symbol "IID_ITaskService".
1>wpmutils.obj : error LNK2001: Nicht aufgelöstes externes Symbol "IID_IDailyTrigger".
1>wpmutils.obj : error LNK2001: Nicht aufgelöstes externes Symbol "IID_IExecAction".
1>wpmutils.obj : error LNK2001: Nicht aufgelöstes externes Symbol "CLSID_TaskScheduler".

taskschd.lib is missing

Edit: Fix in PR #57

Show All/Leaves

You can't remove packages that other packages depends on (like .NET) - so user 
want to know - what packages can be removed right now ("leaves" in dependecies 
tree).
Another issue - column "Leaf/Node" in package list.

Original issue reported on code.google.com by [email protected] on 28 Oct 2012 at 11:45

Generating SHA256 returning different sums

In LibreOffice 64bit when I click "Compute SHA-256" it returns a different sum each time. It also happens very fast so it probably doesn't download the file at all.
Maybe it fails downloading the file and gets a different part of the file each time. But the problem is that the maintainer doesn't know about it because there's no error. So imo if the file fails to be downloaded there should be an error like "Did not compute SHA256 due to failure of downloading the file".

Change Language

Hi! Is there a way how I can change the interface language?

Feature request: Optional custom proxy settings

Hi,

I would like to optionally override the system proxy settings with custom proxy settings. Very similar to how Firefox's proxy settings dialog box is.

This would be useful in our corporate environment, where our default proxy uses NTLM auth and that sometimes causes issues. I have a local CNTLM proxy to handle the auth, and would like to force NPackd to use the local proxy without having to adjust my system proxy settings.

How do I update npackd?

I see “NPackd-1.22.2” listed in Npackd GUI but it doesn’t seem to recognize that I already have NPackd-1.21.6 installed already. Also, I recall trying to update NPackd from within itself in the past and it not seeming to work perfectly. And, also, the readme still seems to have instructions for installing 1.21.6 instead of 1.22.2.

What is the intended way for upgrading? Is it a manual process and, if so, where are the instructions?

how to avoid creating .npackd directory in program files?

I removed some Apps from Windows "Apps and features" the uninstaller got error because of some files not related to this app. After that I detected in many folders from uninstalled apps which remained because their only content is an .npackd directory.

scan multiple folders

you can change the installation directory anytime. This does not affect the previous installations.

Example:

1. set installation directory to "C:\Program Files"

2. install "Notepad++" => it will be in "C:\Program Files\Notepad++"

3. set installation directory to "D:\Programs"

4. install "Firefox" => it will be in "D:\Programs\Firefox". "Notepad++" will still be in "C:\Program Files\Notepad++" and Npackd will know that.

This trick does not work for freshly installed npackd. i have so many apps under portableapps folder, and npackd is unable to scan that folder. Can you add "scan multiple folder" feature to installation directory? (separated by semicolon may be)

Originally posted by @the-liquid-metal in npackd/npackd#536 (comment)

Reason for unintended uninstallation

Sometimes I want to upgrade a package, for example, I wanted to upgrade a few now and then I got this dialog box that says some packages will be UNinstalled too.
image

I definitely don't want them to be uninstalled. I couldn't figure out why this is happening and only after digging deaper did I notice that some dependent package was missing. I assume that if the dependency chain is broken, then NPackd wants to remove the package.

This will be confusing for other users too. My suggestion is that dependency chain management/validation is done separately from when I want to install pacakges and also that when you show the packages, give a better reason for why they want to be removed. In fact, a "Fix dependencies" function would be better.

Update checker

I would like to suggest an enhancement for npackd. I am using it for about 1-2 
years. I recently realized that most of the time I am opening it to update all 
my programs.

I might be interesting to create a background scheduled task for an update 
checker. 

1. If one or more of my installed program has a new version then an icon will 
popup in the notification center (like the windows update).

2. When clicking on this icon, it will launch Npackd (maybe launch direct

3. an option will be available to set the schedule period (every hour, day, 
week, month, never)

Original issue reported on code.google.com by [email protected] on 5 Mar 2013 at 8:46

Reconsider the process of exporting packages

I'm a simple user but a developer as well and it took me serveral hours to determine how I can make use of these Repo.xml files. Why so complicated.

As an average user I would expect an option to export (for example) all installed apps to a file (let it be a json or xml or whatever) which later on I can import and all packages get installed.

Similar to pip freeze > requirements.txt

To be more concrete: In the gui you could make a context option for a package "send to export list" and a new tab would open. So the user looks for his apps he wants to install and sends one by one to this list and after he finishes he can export to a file.

Now lets assume he breaks his system by accident. He has the exported file and via gui he can import it and his apps get installed.

Currently I only see the solution to write a script by hand which performs ncl add -p=xy; ncl add -p=xy; ncl add -p=xy

or

Select an app in the gui and export it to Repo.xml. But you still have to collect your apps by hand and write them into this file by hand.

That sucks. Npackd has a solid base, how can you miss such a basic and important feature "in a proper way".

allow the update and install button to create separate jobs

There are a few issues I have when updating NPackD Packages:

  • It is inconvenient to select multiple packages to update when there are a few packages I do not want to update. Every time, in the updateable tab I have to unselect updating 7zip and Visual C++ redistributable packages, among other packages. It would be great if it was possible to mark Programs to not show up in the updatable tab or in a separate section of the updateable tab so that the process is more convenient. (Duplicate of issue 25)
  • When multiple packages are selected to be updated (using shift- or ctrl- click), if there is a single error, the entire job fails (ex. I want to update all programs; ImageMagic cannot be downloaded, so all other updates in the same job stop). By default, or at the very least as an option, please allow the update and install button to create separate jobs on a program-by-program basis so that any issues do not stop all other tasks from executing.

Otherwise, the program has overall been exceptional as a package manager.

add a npackd service

Please add a npackd service which allow to auto update Software

It should allow adding also a delay. So you could say:
"If a new software is found wait 2 Weeks and Update then if no additional software update is found."

That would allow to be on a more secure way to not be an early adopter of every update.

Startup menu structure

Here is an improvement that would be surely valuable:
A better icon structure in the startup menu.

Instead of a messy structure icon (often with duplicates) it would be nice to 
have a simple 2 levels icon structure.

Example :
Now ->
  /TheProgram
  /TheProgram/TheProgram
  /TheProgram/Uninstall TheProgram
After ->
  /Npackd program category/TheProgram

It is possible to define a localized name for "Npackd program category" and 
change the icon for a better look.

It will be a great improvement for the desktop, helping the user to find easily 
and fastly programs.


Original issue reported on code.google.com by [email protected] on 5 Mar 2013 at 9:00

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.